Как заставить NER класс в Стэнфордском НЛП - PullRequest
0 голосов
/ 28 июня 2018

Исторически я использовал OpenNLP для обработки естественного языка. Я решил попробовать Stanford NLP в своем последнем проекте и столкнулся с проблемами с NER. В частности, когда обрабатывается определенный токен (TOKENP в моем примере), я бы хотел классифицировать его как тип TOKENP.

Я прочитал документацию несколько раз, прочитал ответ на этот связанный пост SO , и я не могу его надежно назначить TOKENP.

Вот файл правил (labels.txt):

TOKENP  TOKENP  PERSON  5

Вот входной файл (tmp.txt):

Michael Scott Dunder Mifflin TOKENP

Вот команда, которую я использую:

java -mx4g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators 'tokenize,ssplit,pos,lemma,ner' -ner.fine.regexner.mapping labels.txt -outputFormat text -file tmp.txt

А вот и вывод:

Tokens:
[Text=Michael CharacterOffsetBegin=0 CharacterOffsetEnd=7 PartOfSpeech=NNP Lemma=Michael NamedEntityTag=PERSON]
[Text=Scott CharacterOffsetBegin=8 CharacterOffsetEnd=13 PartOfSpeech=NNP Lemma=Scott NamedEntityTag=PERSON]
[Text=Dunder CharacterOffsetBegin=14 CharacterOffsetEnd=20 PartOfSpeech=NNP Lemma=Dunder NamedEntityTag=PERSON]
[Text=Mifflin CharacterOffsetBegin=21 CharacterOffsetEnd=28 PartOfSpeech=NNP Lemma=Mifflin NamedEntityTag=PERSON]
[Text=TOKENP CharacterOffsetBegin=29 CharacterOffsetEnd=35 PartOfSpeech=NNP Lemma=TOKENP NamedEntityTag=PERSON]

Extracted the following NER entity mentions:
Michael Scott Dunder Mifflin TOKENP PERSON

Я ожидаю, что TOKENP в качестве последнего токена на входе получит класс TOKENP на основе правил.

1 Ответ

0 голосов
/ 28 июня 2018

Проблема в том, что система правил не разрушит сущность «Майкл Скотт Дандер Миффлин ТОКЕНП».

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

...