gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:03:07 26 4
gpt4 key购买 nike

网站corenlp.run这应该是 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)

在 corenlp.run 上,我得到以下结果:
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)

你会注意到本地机器版本有两个错误的磁头。我不知道为什么 - 特别是如果这是一个模型问题(我目前正在尝试调试每个注释器的输出以查看过程返回什么)

这些是我使用的注释器:“tokenize、ssplit、pos、lemma、ner、parse、openie”。这些模型直接来自 CoreNLP 3.6.0 版

那么谁能帮助我理解为什么我的结果与演示站点的结果不同?

最佳答案

CoreNLP 带有多个解析器来获取选区树和依赖树。默认解析器是 PCFG constituency parser它输出选区树,然后将其转换为依赖树。

corenlp.run ,另一方面,使用 neural net dependency parser它直接输出可能与默认管道的输出不同的依赖树。

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

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

( lemmaneropenie 都是可选的,以防您只需要依赖项解析。)

关于nlp - 为什么在本地运行 CoreNLP 时 'corenlp.run' 会产生不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com