Python-文本分析-搜索词组,而不是简单的单词(标记)

问题描述 投票:0回答:1

我在python中有一个文档,我通过以下方式阅读:

tokens = re.findall('\w+', doc)  # Note that \w+ splits hyphenated words
for token in tokens:

问题是我可以搜索简单的单词(例如“香蕉”,但不能搜索短语,例如“黄色香蕉”)。如何更改代码,以便能够在简单单词之上搜索短语?

好像我某种程度上需要以字符串形式读取整个文件,而不是逐字标记它?

python regex
1个回答
0
投票

您似乎想要获取单词,然后将它们与空格连接,因为您的“短语”似乎是用空格分隔的单个单词。使用

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。
© www.soinside.com 2019 - 2024. All rights reserved.