如何在stanford CoreNLP中使用entitymentions annotator?

时间:2015-04-16 06:58:23

标签: nlp stanford-nlp

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

3 个答案:

答案 0 :(得分:2)

查看mentions annotation键。这应附在句子上,并包含与每次提及相对应的CoreMaps列表。因此,应该有一个与“纽约时报”相对应的CoreMap。

答案 1 :(得分:0)

我想没有注释器会将NEW YORK TIMES注释为单个实体,除非您使用此类数据集训练模型。

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

训练有素的数据集可以将Newyork注释为实体,如果您想将NEW YORK TIME注释为实体,那么在这种情况下您必须使用此类数据集进行训练。

我使用此注释器tokenize,ssplit,pos,lemma,ner,parse,dcoref进行了测试。

查询:New York Times is really nice.

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

查询:Newyork times

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

答案 2 :(得分:0)

尝试

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

如果您使用字符串"New York Times newspaper is distributed in California"进行尝试,则可以看到每个单词 New York < / em>和 Times 。这意味着如果索引相同,则这些单词是单个实体。