nlp - 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。
有没有办法在第一种情况下也可以作为根动词获得?
解决方案
首先应该注意,词根不一定是动词(参见此处和此处)。根是不受其他节点之一支配的一个节点。
非限定从句包含不显示时态的动词。
例如:
“赢得比赛的人”
在这个例子中很明显,根是“人”,“赢”是“人”的从属
如果我们有同样的方式:“公司以全股票交易方式收购 Jagged Peak Energy。” 也很明显,根是“公司”
您的第一个示例:“Parsley Energy 以全股票交易方式收购 Jagged Peak Energy。” 不太明显我认为它是一个省略号,省略号句子中省略的单词是“is”。这句话通常是“Parsley Energy is to gain ..”
见这里:
如果主要谓词不存在(由于省略号)并且有多个孤立的依赖项,则其中一个被提升到头(根)位置,而其他孤立项则附加到它。
总而言之,Spacy 似乎没有在这里犯错。
推荐阅读
- python - Django ORM - 如何优化查询以聚合来自不同模型的 SUM?
- socket.io - 使用 FastAPI/fastapi-socketio 和 JavaScript/socket.io.js 进行双向通信 --> 连接错误
- json - 连接 JSON 字段中的字符串并截断最后一个字符
- amazon-web-services - 阻止所有到 Beanstalk 环境域的流量
- javascript - 我如何使用 javascript 获得单选按钮的值?
- python - 如何通过对话框设置自定义小部件的属性,就像 QtDesigner 中的 QColor
- android - 通过 USB 电缆从 android 应用程序访问 windows 文件夹
- google-sheets - 为什么在谷歌表格中使用查询后前几行消失了?
- php - 卡住 number_format() 期望参数 1 是浮动的
- angular - 如何在本地存储上进行活动