python - 如何在每个指定的字符/字符串处拆分句子?
问题描述
我已经分块了一些基本的名词短语,但是,只有基本的名词短语对我来说是不够的。我想做更多的事情,即在每个分块名词短语的末尾拆分句子。
例如:
sentence = 'protection of system resources against bad behavior'
分块名词短语是(通过在 spaCy 中使用 doc.noun_chunks):
protection, system resources, bad behavior
我想要的结果:
protection, of system resources, against bad behavior
这意味着,我需要在每个分块短语的末尾拆分句子,例如,在“保护”的末尾,在“系统资源”的末尾。
--split() 可以这样工作吗?
--或者也许我可以继续在 spaCy 中使用基于规则的匹配来查找 .head 或直接左/右单词并匹配它们?
有没有人有这种经验?
谢谢!
解决方案
--split() 可以这样工作吗?
不。
--或者也许我可以继续在 spaCy 中使用基于规则的匹配来查找 .head 或直接左/右单词并匹配它们?
根据其文档,noun_chunks
返回Span
. 跨度具有开始/结束索引,因此您可以使用该信息来拆分源字符串,例如
output = []
prev_end = 0
for span in doc.noun_chunks:
output.append(sentence[prev_end:span.end_char + 1])
prev_end = span.end_char + 1
或类似的东西(您可能需要调整代码,因为我从未真正使用过 spaCy,我只是从我对文档的理解出发)
推荐阅读
- javascript - 链接两个异步操作以使两者一起成功或失败(移动文件+数据库保存)
- javascript - 使用位置属性使用图标
- ios - 在后台模式下接收远程推送通知时是否可以多次振动?
- konvajs - 使用 arcTo 的 React-Konva 自定义形状渲染不正确
- java - 最大连接数过高会降低 dbcp2 的性能
- ios - 在反应原生 iOS 应用程序中使用 axios 请求时出现错误 405
- c++ - Eclipse:尽管有链接,SDL 库仍会导致未定义的引用
- testing - 如何在 Scrum 中编写 QA 策略?
- postgresql - 使用毫秒和 +- 查询带有 timestamptz 的表
时区 - javascript - 在 AWS Lambda 中对 Woocommerce API 调用使用 async/await