有效地为大文件中的大量小文档生成文档索引

时间:2011-09-23 12:20:05

标签: python io lucene

目标

我有一个非常大的以下格式的语料库:

<entry id=1>
Some text
...
Some more text
</entry>

...

<entry id=k>
Some text
...
Some more text
</entry>

这个语料库有数千万个条目,而我想要处理的其他语料库则更多。

我希望将每个条目视为单独的文档,并将语料库中的单词映射到它们出现的文档列表。

问题

理想情况下,我只是将文件拆分为每个条目的单独文件,并在目录上运行类似Lucene索引器的所有文件。但是,创建数百万个文件似乎会使我的实验室计算机崩溃。

问题

是否有一种解决此问题的相对简单的方法?我应该将所有条目保存在一个文件中吗?如何跟踪文件在文件中的位置以便在索引中使用?我应该为每个条目使用除单独文件之外的其他工具吗?

如果相关,我会用Python编写大部分代码,但欢迎使用其他语言的解决方案。

1 个答案:

答案 0 :(得分:2)

好吧,将所有条目保存在一个文件中并不是一个好主意。您可以使用生成器处理大文件,以避免内存问题,逐个输入,然后我建议将每个文件存储在数据库中。在此过程中,您可以动态构建所有相关内容,例如术语频率,文档频率,发布列表等,您也可以将其保存在数据库中。

question可能包含一些有用信息。

还要看看this以获得一个想法。