为什么';corenlp.run';在本地运行CoreNLP时产生不同的结果?

为什么';corenlp.run';在本地运行CoreNLP时产生不同的结果?,nlp,stanford-nlp,Nlp,Stanford Nlp,这个网站应该是CoreNLP的演示站点,它显示的结果与我在本地机器上运行CoreNLP管道时的结果截然不同 网站实际上显示了正确的结果,而本地机器版本则没有。我想知道是否有接近CoreNLP项目的人可以解释这些差异 举个例子——当我将其作为输入“给我一家在Soquel Drive上的餐厅,提供优质的法国菜”(这是来自RestQuery数据集)时,就会发生这种情况 在CoreNLP(本地机器,采用斯坦福大学的默认模型)上,我得到以下结果: root(ROOT-0, Give-1) iobj(Giv

这个网站应该是CoreNLP的演示站点,它显示的结果与我在本地机器上运行CoreNLP管道时的结果截然不同

网站实际上显示了正确的结果,而本地机器版本则没有。我想知道是否有接近CoreNLP项目的人可以解释这些差异

举个例子——当我将其作为输入“给我一家在Soquel Drive上的餐厅,提供优质的法国菜”(这是来自RestQuery数据集)时,就会发生这种情况

在CoreNLP(本地机器,采用斯坦福大学的默认模型)上,我得到以下结果:

root(ROOT-0, Give-1)
iobj(Give-1, me-2)
det(restaurant-4, a-3)
dobj(Give-1, restaurant-4)
case(Drive-7, on-5)
compound(Drive-7, Soquel-6)
nmod:on(Give-1, Drive-7) <--- WRONG HEAD
nsubj(serves-9, that-8)
acl:relcl(Drive-7, serves-9) <--- WRONG HEAD
amod(food-12, good-10)
amod(food-12, french-11)
dobj(serves-9, food-12)
root(ROOT-0, Give-1)
iobj(Give-1, me-2)
det(restaurant-4, a-3)
dobj(Give-1, restaurant-4)
case(Drive-7, on-5)
compound(Drive-7, Soquel-6)
nmod:on(restaurant-4, Drive-7) <--- CORRECT HEAD
nsubj(serves-9, that-8)
acl:relcl(restaurant-4, serves-9) <--- CORRECT HEAD
amod(food-12, good-10)
amod(food-12, french-11)
dobj(serves-9, food-12)
root(root-0,给定-1)
iobj(给-1,给-2)
det(餐厅-4、a-3)
dobj(Give-1,餐厅-4)
机箱(驱动器7,on-5)
化合物(驱动器7,Soquel-6)

nmod:on(Give-1,Drive-7)CoreNLP附带了多个解析器来获取选区树和依赖树。默认解析器是输出选区树,然后将其转换为依赖树的解析器

另一方面,使用直接输出依赖关系树的,依赖关系树可以不同于默认管道的输出

为了在本地计算机上获得相同的输出,请使用以下注释器:

tokenize,ssplit,pos,lemma,ner,depparse,openie

lemma
ner
openie
都是可选的,以防您只需要依赖项解析。)

此外,您还需要在
openie
之前使用
natlog
注释器,以防您需要openie三元组,而不仅仅是依赖项解析。我尝试按照您的建议设置注释器,但仍然得到不同的输出。我使用的是3.7.0:props.setProperty(“注释器”、“标记化、ssplit、pos、引理、ner、depparse”);StanfordCoreNLP管道=新的StanfordCoreNLP(道具);注释文档=新注释(文本);管道注释(文件);列出句子=document.get(coreanotations.SentencesAnnotation.class);graph=句子.get(0).get(SemanticGraphCoreAnnotations.EnhancedPlusDependenceAnnotation.class);