Распознаватель именованных сущностей на основе правил без частей речевой метки или любой другой информации - PullRequest
0 голосов
/ 25 октября 2018

Я работаю над проектом, в котором пытаюсь создать именованный распознаватель сущностей из текстов.Поэтому я хочу построить и экспериментировать с NER тремя различными способами.

Во-первых, я хочу построить его, используя только сегментированные предложения-> токенизированные слова.Чтобы уточнить, я хочу вводить только разделенные / токенизированные слова в систему.Еще раз, система NER основана на правилах.Следовательно, он может использовать только правила, чтобы сделать вывод, какой объект является именованным.В первом NER у него не будет никакой информации о чанках или части речевого ярлыка.Просто размеченные слова.Здесь эффективность не является проблемой.Скорее проблема заключается в сравнении 3 разных NER, как они работают.(Тот, о котором я спрашиваю, является первым).

Я какое-то время думал об этом и не мог придумать какие-либо правила или идеи для решения этой проблемы.Один из наивных подходов заключался бы в том, чтобы заключить все слова, начинающиеся с заглавной буквы, и которые не следуют за точкой, чтобы быть именованным объектом.

Я что-то упустил?Любые советы или рекомендации помогут.

1 Ответ

0 голосов
/ 26 октября 2018

Обычно NER полагается на предварительную обработку, такую ​​как тегирование части речи (именованные объекты обычно являются существительными), поэтому отсутствие этой базовой информации делает задачу более трудной и, следовательно, более подверженной ошибкам.Существуют определенные шаблоны, которые вы можете искать, например, тот, который вы предлагаете (хотя, что вы делаете с именованными сущностями в предложении?).Вы можете добавить определенные шаблоны регулярных выражений с предлогами, например (Title_case_token) + of (the)?(Title_case_token) + будет соответствовать «Лидеру свободного мира», «Премьер-министру Объединенного Королевства» и «Александру Великому».Возможно, вы захотите рассмотреть шаблоны, соответствующие аббревиатурам, таким как «SNCF», «IBM», «UN» и т. Д. Первым шагом, вероятно, является поиск некоторых лексических ресурсов (например, списков слов), таких как названия стран, имена и т. Д.. и построить оттуда.

Вы можете использовать spaCy (Python) или TokensRegex (Java) для сопоставления на основе токенов (без использования лингвистических функций).они добавляют к токенам).

...