如何使用Textacy的pos_regex_match()
方法使用伪正则表达式语法查找subject-verb-object三元组?是的,我知道textacy.extract.subject_verb_object_triples()
,但是这个函数非常不准确并且发现很少,所以我试图构建更健壮的东西。
对于文字:
text = "He recently wrote the sky is full of stars."
我正在尝试:
svo_pattern = r'<DET>? <NOUN|PROPN|PRON>+ <VERB>?<ADV>*<VERB>+ <DET>? <NOUN|PROPN|PRON>+'
doc = textacy.Doc(text)
for sent in sents:
matches = list(textacy.extract.pos_regex_matches(sent, svo_pattern))
print(matches)
但它没有找到任何东西。我模式中的缺陷是什么?我玩过它的几种变体,但没有任何匹配。