Алгоритмы для разделения личных имен на части
-
06-07-2019 - |
Вопрос
Я ищу ссылки на разделение имени:"Джон А.Доу" по частям, первый = Джон, средний = А., последний = Доу.В Мексике у нас есть отцовские, материнские, первые и вторые данные имена, и они могут быть написаны в разных вариантах, так что проблема довольно сложная.
Поскольку это зависит от данных, мы работаем с соответствующим программным обеспечением, которое вычисляет оценку для каждого слова, чтобы мы могли принимать решения (оно основано на большой базе данных).Входные данные не являются чистыми, они импортированы с некоторых правительственных веб-страниц и отфильтрованы человеком, поэтому в них может содержаться мусор, который также необходимо распознать.Есть какие-нибудь предложения?
[Править] Примеры:
name: Javier Abdul Córdoba Gándara common permutations (or as it may appear in gvt data referring to same person): Córdoba Gándara Javier Abdul Javier A. Córdoba Gándara Javier Abdul Córdoba G. paternal=Córdoba maternal=Gándara first given:Javier second given:Abdul
name: María de la Luz Sánchez Martínez paternal:Sánchez maternal: Martínez first given: María de la Luz
name: Paloma Viridiana Alin Arias Medina paternal: Arias maternal: Medina first given: Paloma second given: Viridiana Alin
Как я уже сказал, значение каждого слова зависит от оценки.У человека нет никакого способа узнать это
Viridianaи
Alinдаются имена, если не из партитуры.
У нас очень мощная база данных (около 80 миллионов записей), так что мы можем в некоторой степени использовать систему подсчета очков.Я разрабатываю какой-то алгоритм, который использует это, но ищу другие ссылки.
Решение
К сожалению - и я сам проделал довольно большую часть этой работы - ваш идеальный алгоритм будет очень специфичен для данных, и вам нужно будет разработать это для вашей конкретной ситуации.
Что касается общего времени и усилий, затраченных на разработку этого алгоритма, я бы сказал, что время будет разделено примерно следующим образом:
- 10% для общих манипуляций со строками
- 30% за специфический характер данных (Форматы мексиканских названий, особенности ввода данных)
- 60% для обеспечения качества данных / их отсутствия качество
И я считаю, что это довольно щедро по отношению к общим манипуляциям со строками.Конечно, это зависит от того, нужны ли вам качественные результаты для всех записей или только для "чистых" записей и т.д., И если вы можете игнорировать "сложные" записи, это намного упрощает задачу.
Несколько общих советов
- Если они не требуются, удалите не буквенно-цифровые символы / пробелы
- Разбить на пробелы
- Используйте дефисы / знаки препинания для обозначения фамилий или родственных названий
- Инициалы (которые являются в целом одиночные буквы) не являются фамилиями;т. е.они должны быть первыми / средними
- определите уровень уверенности в том, что вы программно идентифицировали каждое имя (и тщательно протестируйте это).Вы можете обнаружить, что существуют подмножества данных, содержащие похожие шаблоны, которые необходимо обрабатывать индивидуально (они могут поступать из разных источников и т.д.).
Другие советы
Возможно, вам потребуется добавить какой-нибудь естественный язык или машинное обучение для проверки.Проблема идентификации имен авторов (например,в научных статьях) затруднительно, поскольку они могут быть представлены с различными порядками, степенями сокращения, пропусками и т.д.Если ваша база данных загрязнена, что бы вы ни делали, все закончится двусмысленностью.