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