gpt4 book ai didi

python - 在非索引文本文件中搜索单词的最快方法 - Python

转载 作者:行者123 更新时间:2023-11-28 16:42:28 24 4
gpt4 key购买 nike

考虑一个 150 万行的文本文件,每行大约 50-100 个单词。

要查找包含单词的行,使用 os.popen('grep -w word infile') 似乎比

for line in infile: 
if word in line:
print line

否则如何在 python 中的文本文件中搜索单词?搜索大型未索引文本文件的最快方法是什么?

最佳答案

有几种快速搜索算法(参见 wikipedia )。他们要求您将单词编译成某种结构。 Grep 正在使用 Aho-Corasick algorithm .

我还没有看到 python 的 in 的源代码,但是

  1. word 为每一行编译需要时间(我怀疑 in 编译任何东西,显然它可以编译它,缓存结果等),或者
  2. 搜索效率低下。考虑在“wordword”中搜索“word”,您首先检查“worw”并失败,然后检查“o”,然后“r”并失败,等等。但是没有理由重新检查“o”或“r”,如果你很聪明。例如,Knuth–Morris–Pratt algorithm根据搜索到的词创建一个表,告诉它发生失败时可以跳过多少个字符。

关于python - 在非索引文本文件中搜索单词的最快方法 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com