好吧。我的目标是从简单的句子中提取 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)
我究竟做错了什么?我很感激任何帮助。
如果您知道您喜欢的任何其他库并且也解决了此任务,请告诉我!