我正在尝试分析一大堆文档,这些文档位于一个巨大的文件中(3.5GB,300K行,300K文档),每行一个文档。在这个过程中,我使用Lucene进行索引,使用Lingpipe进行预处理。
问题在于我想摆脱文件中非常罕见的词语。例如,如果在语料库(巨大的文件)中出现少于MinDF次的单词,我想删除它。
我可以尝试使用Lucene:为所有不同的术语计算文档频率,按升序对它们进行排序,获得DF低于MinDF的条件,再次检查大文件,并删除这些术语行线。
这个过程将非常缓慢。有没有人知道使用Java做任何更快的方法?
此致
答案 0 :(得分:0)
首先创建一个临时索引,然后使用其中的信息生成最终索引。使用IndexReader.terms()
,对其进行迭代,每个字词都有TermEnum.docFreq
。累积所有低频项,然后将该信息提供给在创建最终索引时扩展StopWordAnalyzerBase
的分析器。