为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 SpaCy 依赖树拆分为子句?

如何将 SpaCy 依赖树拆分为子句?

PIPIONE 2023-02-22 15:10:58
我正在尝试通过依赖树(根据 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?']


查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 62 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信