python - Python - 文本分析 - 搜索短语而不是简单的单词(标记)
问题描述
我有一个python文档,我通过以下方式阅读:
tokens = re.findall('\w+', doc) # Note that \w+ splits hyphenated words
for token in tokens:
这样做的问题是我可以搜索简单的单词(例如“bananas”,但不能搜索短语,例如“yellow bananas”)。我应该如何更改我的代码以便能够在简单单词之上搜索短语?
似乎我需要以某种方式将整个文件作为字符串读取,而不是逐字标记?
解决方案
您似乎想要获取单词,然后用空格将它们连接起来,因为您的“短语”似乎是单个空格分隔的单词。利用
text = ''
with open(path, 'r') as fr:
text = fr.read()
clean_text = " ".join(re.findall(r'\w+(?:-\w+)*', text))
然后,您可以简单地使用.find()
.
该\w+(?:-\w+)*
模式提取连字符和非连字符的单词:
\w+
- 一个或多个字母、数字、_
s(?:-\w+)*
- 0次或多次重复-
- 一个连字符
\w+
- 一个或多个字母、数字、_
s。
推荐阅读
- javascript - 根据 React 中的索引和颜色词过滤文本
- r - 如何在R中的矩阵内绘制半圆?
- java - SolrException:无法从 ZK 加载集合
- python - 转换损坏的 .xls 的 Dytypes
- python - 如何在 Python 中将列表转换为 3 位数字?
- jmeter - 如何在 JMeter 中获取 RPS 指标并将它们发送到 InfluxDb?
- r - 错误:XLConnect 的包或命名空间加载失败
- sdk - 如何使用 cognos sdk、Spring Security 和 LDAP 实现 SSO
- android - 'adb devices' 找到我的 USB 设备,但 android studio 没有。只显示“加载设备”,运行时也说“没有找到目标设备”
- wamp - Wamp 错误 - aestan 托盘菜单配置文件在第 14 行包含语法错误: