首页 > 解决方案 > 如何在斯坦福 NLP 中强制 NER 类

问题描述

从历史上看,我曾使用 OpenNLP 进行自然语言处理。我决定在我的最新项目上尝试一下斯坦福 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基于规则的类。

标签: stanford-nlp

解决方案


问题是规则系统不会分解“Michael Scott Dunder Mifflin TOKENP”的实体。

我可以尝试添加一个选项,在所有情况下都可以在任何内容上写入基于规则的标签(或者看看是否已经有这样的选项!)


推荐阅读