Распознавание именованных объектов: как пометить обучающий набор и выбрать алгоритм?

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

Примером предложения может быть:

Blossom Inc. нанимает консультантов Big Think для разработки стратегии аутсорсинга.

с Blossom Inc в качестве заказчика и Big Think в качестве подрядчика.

Мой первый вопрос: Достаточно ли пометить только руководителей и подрядчиков в моей обучающей выборке или лучше дополнительно использовать POS-теги?

Другими словами, либо

Blossom/PRINCIPAL Inc./PRINCIPAL нанимает/NN the/NN консультантов/NN of/NN Big/ПОДРЯДЧИК Думает/ПОДРЯДЧИК по/NN разрабатывает/NN и/NN аутсорсинг/NN стратегия/NN ./.

or

Blossom/PRINCIPAL Inc./PRINCIPAL нанимает/VBZ/DT консультанты/NNS of/IN Big/ПОДРЯДЧИК Think/ПОДРЯДЧИК по/разработке/VB an/DT аутсорсинг/NN стратегия/NN ./.

Второй вопрос: После того, как у меня будет тренировочный набор, какие алгоритмы пакета nltk являются наиболее перспективными? N-Gram Tagger, Brill Tagger, TnT Tagger, Maxent Classifier, Naive Bayes, ...? Или я здесь совершенно не на том пути?

Я новичок в НЛП, и я просто хотел спросить совета, прежде чем тратить много времени на пометку своего тренировочного набора. И мой текст на немецком языке, что может добавить некоторые трудности... Спасибо за любой совет!


person tobip    schedule 07.01.2014    source источник


Ответы (3)


Я бы посоветовал вам не объединять именованные объекты и информацию о POS. Большая часть работ показала, что POS (или иным образом некоторые морфологические признаки и/или капитализация) полезны для обнаружения именованных сущностей. Поскольку вы можете совершенно безопасно использовать автоматический тег POS (если только вы не обрабатываете зашумленные тексты), вы можете получить что-то вроде:

Blossom/NNP/PRINCIPAL Inc./NNP/PRINCIPAL hires/VBZ/O the/DT/O consultants/NNS/O of/IN/O Big/NNP/CONTRACTOR Think/NNP/CONTRACTOR to/TO/O develop/VB/O an/DT/O outsourcing/NN/O strategy/NN/O ./.

где уровень POS будет автоматически помечен, в то время как вы можете вручную аннотировать ПРИНЦИПАЛА и ПОДРЯДЧИКА. Также обратите внимание, что большинство людей используют формат BIO для пометки именованных объектов.

Имейте в виду, что распознавать организации обычно довольно сложно — по крайней мере, сложнее, чем людей и местоположения. Если у вас нет заранее определенного списка организаций, для этого требуется большой словарный запас. Интуитивно, я думаю, вы могли бы разделить свою задачу на:

  1. Распознавание и фильтрация организаций (ORG), например, с помощью тега NER
  2. Внедрение дополнительных обработок (шаблоны/синтаксис/семантика)
  3. Внедрить вторую модель, которая преобразует соответствующую ОРГАНИЗАЦИЯ в ПРИНЦИПАЛА или ПОДРЯДЧИКА.
person eldams    schedule 08.01.2014
comment
Most work has shown звучит пушисто, и я точно знаю, что это неправда. Не говоря уже о том, что вы подразумеваете, что POS является морфологической функцией, и что использование заглавных букв сопоставимо с POS, но ни то, ни другое неверно. - person Slater Victoroff; 09.01.2014
comment
Посмотрите здесь l2r.cs.uiuc.edu/~danr/Papers/ RatinovRo09.pdf о НЭР/ПОС. Кроме того, я не подразумеваю, что POS является морфологическим признаком, но для NER, если вы не используете POS (который дает вам NNP), вам придется использовать некоторые морфологические признаки или, по крайней мере, использовать заглавные буквы. - person eldams; 09.01.2014
comment
В этом документе POS показан как пример функции, которую можно использовать. Это сильно отличается от того, что требуется маркировка POS. Кроме того, стандартные POS-теггеры (в частности, тот, что в NLTK) обычно достигают точности ~ 60-70% для нового текста, поэтому построение NER на нем похоже на строительство замка на песке. Кроме того, ваше второе замечание похоже на высказывание: если вы не используете эту функцию, вам придется использовать какую-то другую функцию. Conll (наиболее распространенный корпус NER) не содержит POS, что делает этот вопрос довольно спорным. - person Slater Victoroff; 09.01.2014
comment
Я действительно должен спорить? Цитата из цитируемой статьи: Большинство систем NER используют дополнительные функции, такие как теги POS, неглубокая информация для синтаксического анализа и географические справочники. Формат данных CoNLL содержит POS: cnts.ua.ac.be/conll2003/ner< /а> . Тем не менее, позвольте мне немного изменить свой ответ, чтобы учесть ваш комментарий. - person eldams; 09.01.2014

  1. Вам не нужно маркировать POS вручную. Теггер POS сделает это за вас.
  2. См. этот вопрос для POS-тегов на немецком языке.
person cyborg    schedule 07.01.2014

Именованного распознавания сущностей (Стэнфорд) достаточно для вашей проблемы.

Использование тегов POS не решит вашу проблему.

Достаточное количество обучающих данных для создания модели NER даст вам хорошие результаты.

Если вы используете Stanford NER, то он использует классификатор и алгоритм CRF.

person Rohan Amrute    schedule 20.11.2015