我有一个字符串缓冲区,存储着一个巨大的文本文件。我需要在这个字符串缓冲区里查找指定的单词/短语。有什么高效的方法可以做到这一点呢?
我尝试使用re模块匹配,但是由于我需要搜索的文本语料库非常庞大,所以这需要花费大量的时间。
给定一个单词和短语的字典。
我遍历每个文件,将其读入字符串,搜索字典中的所有单词和短语,并在字典中增加计数,如果找到了键。
我们想到的一个小优化是将短语/单词的字典按照单词数量最多到最少进行排序。然后从字符串缓冲区比较每个单词的起始位置并比较单词列表。如果找到一个短语,则不继续搜索其他短语(因为它匹配了最长的短语,这正是我们想要的)。
是否有人能够建议如何逐个单词地遍历字符串缓冲区呢?
此外,还能对此进行其他优化吗?
data = str(file_content)
for j in dictionary_entity.keys():
cnt = data.count(j+" ")
if cnt != -1:
dictionary_entity[j] = dictionary_entity[j] + cnt
f.close()