Распознавание именованных объектов в верхнем регистре
Как извлечь объекты из текста в верхнем регистре.
Я использую - http://corenlp.run/
с тестовыми данными - Я ЗНАЮ, ЧТО ЖИВЕТ В ЛОНДОНЕ.
ЛОНДОН - Местоположение TOM - не определено, отношение не определено
с данными испытаний - я знаю, что Том живет в Лондоне. Том - Персона Лондон - Местоположение правильно определено.
Как улучшить это?
2 ответа
Я прошел через ту же проблему, что и ты. Наилучшим подходом для этого является использование собственного словаря. Это будет намного быстрее, чем при использовании Stanford NER.
Вот несколько источников.
http://deron.meranda.us/data/census-dist-female-first.txt (4275 entries)
http://deron.meranda.us/data/census-dist-male-first.txt (1219 entries)
http://deron.meranda.us/data/census-derived-all-first.txt
Вы можете попробовать использовать модель без учета регистра, которая игнорирует регистр. Но убедитесь, что вы используете это только для предложений, которые все в верхнем или нижнем регистре для лучших результатов!
Модель caseless доступна в банке английских моделей. Вы можете скачать эту модель банки здесь: http://stanfordnlp.github.io/CoreNLP/download.html
Вам нужно установить параметр "ner.model" для использования моделей без учета регистра:
Properties props = new Properties();
props.setProperty("ner.model", "edu/stanford/nlp/models/ner/english.all.3class.caseless.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.muc.7class.caseless.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.conll.4class.caseless.distsim.crf.ser.gz");
Я думаю, что это может быть крутой новой функцией в следующей системе NER, чтобы автоматически определять, является ли предложение ALL-CAPS или полностью строчными буквами, и использовать модель без учета регистра для этих предложений.