Алгоритмы расщепления личных имен по частям - PullRequest
1 голос
/ 28 октября 2009

Я ищу ссылки на разделение имени: «Джон А. Доу» по частям, первый = Джон, средний = А., последний = Доу. В Мексике у нас есть отцовские, материнские, первые и вторые имена, и они могут быть написаны разными перестановками, поэтому проблема довольно сложная.

Поскольку это зависит от данных, мы работаем с соответствующим программным обеспечением, которое рассчитывает оценку для каждого слова, чтобы мы могли принимать решения (это основано на большой базе данных). Входные данные не являются чистыми, они импортируются с некоторых правительственных веб-страниц и фильтруются человеком, поэтому они могут иметь нежелательную информацию, которая также должна быть распознана. Есть предложения?

[Изменить] Примеры:

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 миллионов записей), поэтому мы можем использовать систему оценки. Я разрабатываю некоторый алгоритм, который использует это, но ищу другие ссылки.

Ответы [ 2 ]

1 голос
/ 28 октября 2009

К сожалению - и выполнив довольно много этой работы самостоятельно - ваш идеальный алгоритм будет очень специфичен для данных, и вам нужно будет решить это для вашей конкретной ситуации.

Из общего времени и усилий по разработке этого алгоритма я бы сказал, что время будет разделено примерно следующим образом:

  1. 10% для общих операций со строками
  2. 30% за специфику данные (мексиканские форматы имен, особенности ввода данных)
  3. 60% для обеспечения качества данных / отсутствия качество

И я считаю, что это довольно щедро по отношению к общей манипуляции со строками. Конечно, это зависит от того, нужны ли вам качественные результаты для всех записей или только для «чистых» записей и т. Д., И если вы можете игнорировать «трудные» записи, это делает его намного проще.

Некоторые общие советы

  • Если они не требуются, удалите не буквенно-цифровые / пробельные символы
  • Разделить на пробелы
  • Используйте дефисы / знаки препинания для определения фамилий или фамилий
  • инициалы (обычно одиночные буквы) не являются фамилиями; то есть они должен быть первым / средним
  • определите уровень достоверности того, что вы программно определили каждое имя (и тщательно проверьте это). Вы можете обнаружить, что есть подмножества данных, которые содержат похожие шаблоны, которые необходимо обрабатывать индивидуально (они могут поступать из разных источников и т. Д.)
0 голосов
/ 28 октября 2009

Вам может понадобиться добавить немного естественного языка или машинного обучения для проверки. Проблема определения имен авторов (например, в научных статьях) является сложной, поскольку о них можно сообщать с разными порядками, степенями аббревиатур, пропусков и т. Д. Если ваша база данных грязная, вы закончите с неопределенностью независимо от того, что вы делаете.

...