首页 > 解决方案 > spaCy:使用依赖解析在句子中查找根词的问题

问题描述

我正在尝试使用 spaCy 解析以下句子:

text = "Parsley Energy to acquire Jagged Peak Energy in an 
          all-stock deal."

doc = nlp(text)
for token in doc:
    print(token.text, ' ====> ', token.dep_)

这给了我作为根动词的能量,这是不正确的。

但是,如果我稍微改变一下句子,即从获取将获取

new_text = "Parsley Energy will acquire Jagged Peak Energy in an 
            all-stock deal."

我正确地得到了 Root 动词作为acquire

有没有办法在第一种情况下也可以作为根动词获得?

标签: nlpspacy

解决方案


首先应该注意,词根不一定是动词(参见此处此处)。根是不受其他节点之一支配的一个节点。

非限定从句包含不显示时态的动词。
例如:
“赢得比赛的人”
在这个例子中很明显,根是“人”,“赢”是“人”的从属

如果我们有同样的方式:“公司以全股票交易方式收购 Jagged Peak Energy。” 也很明显,根是“公司”

您的第一个示例:“Parsley Energy 以全股票交易方式收购 Jagged Peak Energy。” 不太明显我认为它是一个省略号,省略号句子中省略的单词是“is”。这句话通常是“Parsley Energy is to gain ..”

这里

如果主要谓词不存在(由于省略号)并且有多个孤立的依赖项,则其中一个被提升到头(根)位置,而其他孤立项则附加到它。

总而言之,Spacy 似乎没有在这里犯错。


推荐阅读