术语文档使用Lucene / Lingpipe在大型语料库中的Java频率

时间:2012-04-27 10:07:49

标签: java lucene text-analysis

我正在尝试分析一大堆文档,这些文档位于一个巨大的文件中(3.5GB,300K行,300K文档),每行一个文档。在这个过程中,我使用Lucene进行索引,使用Lingpipe进行预处理。

问题在于我想摆脱文件中非常罕见的词语。例如,如果在语料库(巨大的文件)中出现少于MinDF次的单词,我想删除它。

我可以尝试使用Lucene:为所有不同的术语计算文档频率,按升序对它们进行排序,获得DF低于MinDF的条件,再次检查大文件,并删除这些术语行线。

这个过程将非常缓慢。有没有人知道使用Java做任何更快的方法?

此致

1 个答案:

答案 0 :(得分:0)

首先创建一个临时索引,然后使用其中的信息生成最终索引。使用IndexReader.terms(),对其进行迭代,每个字词都有TermEnum.docFreq。累积所有低频项,然后将该信息提供给在创建最终索引时扩展StopWordAnalyzerBase的分析器。