使用Python在许多文档中搜索许多表达式

时间:2010-12-14 19:47:08

标签: python nlp

我经常要在许多文件中搜索许多单词(1000+)(百万+)。我需要匹配单词的位置(如果匹配)。

如此缓慢的伪代码版本

for text in documents:
     for word in words:
             position = search(word, text)
             if position:
                  print word, position 

有没有快速的Python模块可以做到这一点?或者我应该自己实施一些东西?

3 个答案:

答案 0 :(得分:4)

对于快速准确文本,多关键字搜索,请尝试使用acora - http://pypi.python.org/pypi/acora/1.4

如果你想要一些额外的东西 - 结果相关性,接近匹配,字根等,飞快移动可能会更好 - http://pypi.python.org/pypi/Whoosh/1.4.1

我不知道如何扩展到数百万个文档,但不需要很长时间才能找到答案!

答案 1 :(得分:1)

grep出了什么问题?

所以你必须使用python?怎么样:

import subprocess

subprocess.Popen('grep <pattern> <file>')

这是疯了。但是嘿!你正在使用python; - )

答案 2 :(得分:0)

假设documents是一个字符串列表,您可以使用text.index(word)查找第一个匹配项,使用text.count(word)查找总发生次数。您的伪代码似乎假设单词只会出现一次,因此text.count(word)可能是不必要的。