0

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

问题是我想去掉文档中非常罕见的单词。例如,如果一个词在语料库(大文件)中出现的次数少于 MinDF 次,我想删除它。

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

这个过程将非常缓慢。有谁知道使用 Java 更快的方法来做到这一点?

问候

4

1 回答 1

0

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

于 2012-04-27T10:25:56.397 回答