Ответ на ваш первый вопрос заключается в том, что алгоритм работает с окружающим контекстом (токенами) в предложении; это не просто простой механизм поиска. OpenNLP использует максимальную энтропию, которая является формой многомерной логистической регрессии для построения ее модели. Причина этого заключается в том, чтобы уменьшить «двусмысленность смысла слова» и найти сущности в контексте. Например, если мое имя - апрель, я легко смущаюсь с апрелем, и, если меня зовут Май, я смущаюсь с майским месяцем, а также глаголом. Во второй части первого вопроса вы можете составить список имен, которые известны, и использовать эти имена в программе, которая просматривает ваши предложения, и автоматически комментирует их, чтобы помочь вам создать учебный набор, однако, составив список имен в одиночку без контекста не будет готовить модель достаточно или вообще. Фактически, для этого используется аддон OpenNLP, называемый «addbuilder-конструктор»: вы даете ему файл имен, и он использует имена и некоторые ваши данные (предложения) для обучения модели. Если вы ищете конкретные имена вообще не двусмысленных сущностей, вам может быть лучше использовать список и что-то вроде регулярного выражения для поиска имен, а не NER.
Что касается вашего второго вопроса, то есть несколько вариантов, но в целом я не думаю, что NER - отличный инструмент для определения чего-то вроде пола, однако при достаточном количестве тренировочных предложений вы можете получить приличные результаты. Поскольку NER использует модель, основанную на окружающих токенах, в вашей тренировке предложений, устанавливающей существование именованного объекта, она не может многое сделать с точки зрения определения пола. Возможно, вам лучше найти все имена людей, а затем указать индекс имен, которые, как вы знаете, являются мужчинами или женщинами, чтобы получить соответствие. Кроме того, некоторые имена, такие как Пэт, являются как мужчинами, так и женщинами, и в большинстве текстовых данных не будет никаких указаний на то, что оно ни для человека, ни для машины. При этом вы могли бы создать модель для мужчин и женщин отдельно, или вы могли бы создать разные типы сущностей в одной и той же модели. Вы могли бы использовать аннотацию, подобную этой (используя разные имена типов сущностей male.person и female.person). Я никогда не пробовал это, но это может сделать нормально, вам придется проверить его на ваших данных.
<START:male.person> Pierre Vinken <END> , 61 years old , will join the board as a nonexecutive director Nov. 29 .
Mrs . <START:female.person> Maria <END> is chairman of Elsevier N.V. , the Dutch publishing group
ЧПО = Названный Entity Recognition
HTH
Спасибо! Да, я должен следовать вашему примеру, делая ** female.person ** и ** male.человек **, проблема здесь в том, что у меня есть много имен и фамилий (около 200 тыс.), поэтому в этом случае я должен писать одни и те же предложения снова и снова с другим именем каждый раз ?, например, <НАЧАТЬ: male.person> Pierre Vinken, 61 год .. ** затем ** John Travolta , 61 лет ... и т. Д. И т. Д.? –
Dail
интересная идея .... Я бы попробовал и посмотрел, что получится – markg
нужно ли нам следовать этому пути? – Dail