python - 如何在文本列表中找到一个字符串和它之后和之前的 N 个单词和
问题描述
我有一个包含文件文本的列表。我将在每个文档上搜索一个特殊的单词,然后提取字符串前后的 20 个单词。最后,将每个发现记录到一个数据框中。我知道我应该使用正则表达式,但我不知道在找到这个词之前和之后我应该如何计算。以及我应该如何设置代码以继续搜索文本的其余部分。
解决方案
您可以使用 find 方法,然后对文本进行切片。它会给出这样的结果:
to_extract = ""
pos = txt.find(TO_FIND)
if pos != -1:
if pos > 20 and pos + 20 < len(txt):
to_extract = txt[pos-20:pos+20]
elif pos < 20:
to_extract = txt[:pos+20]
elif pos + 20 > len(txt):
to_extract = txt[pos-20:]
注意:我没有对此进行测试,但这是要走的路,而且它仅适用于单词的第一次出现
推荐阅读
- java - 我可以使用扫描仪方法将 .txt 拆分为 emptyLine 吗?
- reactjs - 如何在 Next.js 中实现加载屏幕
- http-live-streaming - 如何通过videojs contrib-hls将参数添加到浏览器端由m3u8清单触发的请求
- ruby - 尝试仅提取域名
- python - 如何在python中访问上下文管理器输出
- postgresql - 如何在 postgres 存储过程中使用正则表达式捕获组(如果可能的话)?
- java - Java G1 垃圾回收 | 驻留内存高于 NMT 保留内存
- javascript - Sequelize GROUP BY & CROSS JOIN with Variables 的最佳实践
- r - ggplot2 , ggroc 改变轴刻度
- c# - 使用 Github Actions 将多项目 ASP.NET Core Web 应用程序部署到 Azure 应用程序服务