StanfordNLP,CoreNLP,spaCy-不同的依赖关系图

StanfordNLP,CoreNLP,spaCy-不同的依赖关系图,nlp,stanford-nlp,spacy,dependency-parsing,Nlp,Stanford Nlp,Spacy,Dependency Parsing,我试图使用依赖关系图上定义的简单规则/模式从句子中提取非常基本的信息(例如,三元组,如主语->谓语->宾语)。我开始使用它,因为它很容易设置和使用GPU以获得更好的性能。然而,我注意到,对于某些句子,生成的依赖关系图看起来不像我预期的那样——尽管我不是专家。因此,我尝试了另外两种解决方案:和(我知道这些方案是由不同的团队维护的?) 例如,“汤姆让山姆相信爱丽丝得了癌症。”我已经打印了这三种方法的依赖关系。CoreNLP和spaCy产生相同的依赖关系,并且它们不同于StanfordNLP。因此,我

我试图使用依赖关系图上定义的简单规则/模式从句子中提取非常基本的信息(例如,三元组,如主语->谓语->宾语)。我开始使用它,因为它很容易设置和使用GPU以获得更好的性能。然而,我注意到,对于某些句子,生成的依赖关系图看起来不像我预期的那样——尽管我不是专家。因此,我尝试了另外两种解决方案:和(我知道这些方案是由不同的团队维护的?)

例如,“汤姆让山姆相信爱丽丝得了癌症。”我已经打印了这三种方法的依赖关系。CoreNLP和spaCy产生相同的依赖关系,并且它们不同于StanfordNLP。因此,我倾向于切换到CoreNLP和spaCy(另一个优势是,它们随NER一起开箱即用)

有没有人有更多的经验或反馈,这将有助于今后的发展?我并不期望CoreNLP和spaCy总是在相同的依赖关系图中产生,但在示例句子中,将
Sam
视为
obj
,与作为
nsubj
(CoreNLP,spaCy)相比,StandfordNLP所做的事情似乎是一个显著的差异

Format:
token   dependency_tag   parent_token

StanfordNLP
Tom     nsubj   made
made    ROOT    ROOT
Sam     obj     made
believe ccomp   made
that    mark    has
Alice   nsubj   has
has     ccomp   believe
cancer  obj     has
.       punct   made

CoreNLP
Tom     nsubj   made
made    ROOT    ROOT
Sam     nsubj   believe
believe ccomp   made
that    mark    has
Alice   nsubj   has
has     ccomp   believe
cancer  dobj    has
.       punct   made

spaCy
Tom     nsubj   made
made    ROOT    ROOT
Sam     nsubj   believe
believe ccomp   made
that    mark    has
Alice   nsubj   has
has     ccomp   believe
cancer  dobj    has
.       punct   made

不知道如何回答您的问题,但我建议您仔细阅读斯坦福CoreNLP的文档:

在包中有几个语法分析器和依赖项分析器,您可以使用它们。只要看看语法分析,就可以选择检索k-best分析,如果您处理对它们的依赖关系,则很可能会得到每个语法分析的不同依赖关系


这与解析器中的不准确和自然语言中的歧义有关。

不确定如何解决您的问题,但我建议您仔细阅读斯坦福CoreNLP的文档:

在包中有几个语法分析器和依赖项分析器,您可以使用它们。只要看看语法分析,就可以选择检索k-best分析,如果您处理对它们的依赖关系,则很可能会得到每个语法分析的不同依赖关系

这与解析器中的不准确和自然语言中的歧义有关