我正在尝试通过依赖树(根据 SpaCy)来拆分文本单元。我已经尝试了 spacy 提供的大部分文档,但我不知道如何完成这项任务。要可视化,请参见下文:import spacyfrom spacy import displacydoc = nlp('I was, I dont remember. Do you want to go home?')dependency_flow = displacy.render(doc, style='dep', jupyter = True, options = {'disxatance': 120})上面的代码产生了这个依赖关系树图(由于大小分成了 2 个屏幕截图):直观上,这表明原句中有 2 个独立子句。原来的句子是'I was, I dont remember. Do you want to go home?', 它被有效地分成了两个从句,'I was, I dont remember.', 和'Do you want to go home?'。输出如何使用 SpaCy 或任何其他工具将原始话语拆分为这两个子句,以便输出为:['I was, I dont remember.', 'Do you want to go home?']?我目前的方法相当冗长且昂贵。它涉及在原始文本中找到两个最大的子树,它们的相对索引跨越原始文本索引的范围,但我相信还有另一种更好的方法。
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
给定您的输入和输出,即一个子句不会跨越多个句子。然后,与其沿着依赖树的兔子洞走下去,不如从文档中将子句作为句子(在内部它们是跨度)获取会更好。
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp('I was, I dont remember. Do you want to go home?')
print([sent.text for sent in doc.sents])
输出
['I was, I dont remember.', 'Do you want to go home?']
添加回答
举报
0/150
提交
取消