如何在stanford CoreNLP中使用实体注释器?

如何在stanford CoreNLP中使用实体注释器?,nlp,stanford-nlp,Nlp,Stanford Nlp,我正在尝试斯坦福大学CoreNLP的最新版本。当我提取位置或组织名称时,我看到每个单词都带有注释标记。因此,如果实体是“纽约时报”,那么它将被记录为三个不同的实体:“纽约”、“纽约”和“时报”。我发现最新的CoreNLP有“entityments”注释器。我想这个注释员可以帮我解决这个问题。但是,此注释器没有使用说明或示例。有人能给我更多关于这个新功能的信息吗?看看钥匙。这应该附加到一个句子中,并包含一个对应于每个提及的核心地图列表。因此,应该有一个CoreMap对应于提到的“纽约时报”。我想没

我正在尝试斯坦福大学CoreNLP的最新版本。当我提取位置或组织名称时,我看到每个单词都带有注释标记。因此,如果实体是“纽约时报”,那么它将被记录为三个不同的实体:“纽约”、“纽约”和“时报”。我发现最新的CoreNLP有“entityments”注释器。我想这个注释员可以帮我解决这个问题。但是,此注释器没有使用说明或示例。有人能给我更多关于这个新功能的信息吗?

看看钥匙。这应该附加到一个句子中,并包含一个对应于每个提及的核心地图列表。因此,应该有一个CoreMap对应于提到的“纽约时报”。

我想没有注释者会将纽约时报注释为单个实体,除非您使用这样的数据集训练模型

Stanford NER和POS tagger使用一些数据集进行训练,并在此基础上对实体进行注释。(我看到了,它在斯坦福源文件中有一些人、地点、组织的文本字典列表。它将决定要注释哪些实体)

经过训练的数据集可以将纽约注释为一个实体,如果您想将纽约时间注释为一个实体,那么在这种情况下,您必须使用此类数据集进行训练

我使用注释器
测试了标记化、ssplit、pos、引理、ner、parse、dcoref

查询:
纽约时报真不错。

结果:
[Text=newcharacteroffsetbegin=0 CharacterOffsetEnd=3 PartOfSpeech=NNP引理=newnamedentitytag=ORGANIZATION][Text=York CharacterOffsetBegin=4 CharacterOffsetEnd=8 PartOfSpeech=NNP引理=York NamedEntityTag=ORGANIZATION][Text=Times CharacterOffsetBegin=9 CharacterOffsetEnd=14 PartOfSpeech=NNP引理=Times NamedEntityTag=ORGANIZATION][Text=is CharacterOffsetBegin=15 CharacterOffsetEnd=17 PartOfSpeech=VBZ引理=be NamedEntityTag=O][Text=really CharacterOffsetBegin=18 CharacterOffsetEnd=24 PartOfSpeech=RB引理=really NamedEntityTag=O][Text=nice CharacterOffsetBegin=25 CharacterOffsetEnd=29 PartOfSpeech=JJ引理=nice NamedEntityTag=O][Text=.CharacterOffsetBegin=29 CharacterOffsetEnd=30 PartOfSpeech=.Lemma=.NamedEntityTag=O]

查询:
newyorktimes

结果:
[Text=Newyork CharacterOffsetBegin=0 CharacterOffsetEnd=7 PartOfSpeech=NNP引理=Newyork NamedEntityTag=LOCATION][Text=times CharacterOffsetBegin=8 CharacterOffsetEnd=13 PartOfSpeech=NNS引理=time NamedEntityTag=O]
试试看

Integer entityMentionIndex = coreLabel.get(CoreAnnotations.EntityMentionIndexAnnotation.class);

如果您尝试使用字符串
“纽约时报在加利福尼亚发行”
,您可以看到
EntityMotionIndex
0
(零)对于每个单词New、York和Times。这意味着如果索引相同,那么这些单词就是单个实体。

是的,我看到了java源代码。与其他注释器不同,它的类类型是一个列表。这就是为什么我不知道如何使用它。你能给出一个如何获得结果的示例吗?例如,我们可以使用foll获得解析树代码树树=句子.get(TreeCoreNotations.TreeAnnotation.class);列表提及=句子.get(CoreAnnotations.ReferencesAnnotation.class);是的,我的结果和你的一样。在as@Jon Gauthier中,新的注释器可以帮上忙。