nlp - spacy/textacy: subject_verb_object_triples(doc) 不返回任何三元组
问题描述
好吧。我的目标是从简单的句子中提取 SVO-triplets。例如句子“一个人站在厨房里做三明治”。我想要输出<人,站立,厨房>和<人,制作,三明治>。因此,我尝试为此使用 spacy/textacy,但不知何故,它不会返回任何三元组(我尝试使用对其他人有用的其他例句,但对我也不起作用)。
这就是我在 Colab 中运行的代码:
!python -m spacy download en_core_web_sm
import spacy
import textacy
nlp = English()
nlp = spacy.load('en_core_web_sm')
nlp.add_pipe('sentencizer')
tuples_list = []
def extract_SVO(text):
doc = nlp(text)
tuples = textacy.extract.subject_verb_object_triples(doc)
tuples_to_list = list(tuples)
if tuples_to_list != []:
print("got at least one!")
tuples_list.append(tuples_to_list)
else:
print("none!")
text = "A person is standing in a kitchen making a sandwich."
extract_SVO(text)
print(tuples_list)
我究竟做错了什么?我很感激任何帮助。
如果您知道您喜欢的任何其他库并且也解决了此任务,请告诉我!
解决方案
推荐阅读
- laravel - 如何在 Laravel 中创建 Robots.txt 文件?
- logging - Sybase 标准机制
- c# - 使用 C#(无 JavaScript)直接将 Blazor WebAssembly 文件分块到 Azure Blob 存储
- php - 如何在另一个 php 项目中使用 laravel Route 系统?
- mysql - 带有 WHERE 子句的分区子查询的 LEFT JOIN 不能使用顶级列
- javascript - React-dropzone 多上传文件结合附加元数据
- django - 如何获取ForeignKey字段的QuerySet Django
- javascript - React useState and History.push issue
- python - 从 python gui 运行 exe
- database - Notion API - Notion 数据库模型也是一个块?