从历史上看,我使用OpenNLP进行自然语言处理。我决定让Stanford NLP尝试一下我的最新项目,并且遇到了NER的问题。具体来说,当处理特定令牌(在我的示例中为TOKENP
)时,我希望将其分类为TOKENP
的类型。
我已经通读了多次文档,通读了对此related SO post的回复,但无法可靠地将其分配给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
类。
答案 0 :(得分:0)
问题在于规则系统不会破坏“ Michael Scott Dunder Mifflin TOKENP”的实体。
我可以尝试添加一个选项,该选项将在任何情况下都为所有内容编写基于规则的标记(或查看是否已经存在这样的选项!)