0

巨大なファイル (3.5GB、300K 行、300K ドキュメント) にあるドキュメントの大規模なコーパスを、1 行に 1 つのドキュメントで分析しようとしています。このプロセスでは、索引付けに Lucene を使用し、前処理に Lingpipe を使用しています。

問題は、ドキュメント内の非常にまれな単語を削除したいということです。たとえば、ある単語がコーパス (巨大なファイル) 内で MinDF 回未満しか出現しない場合、その単語を削除したいと考えています。

私は Lucene でそれを試すことができます: すべての個別の用語の文書頻度を計算し、それらを昇順に並べ替え、DF が MinDF よりも低い用語を取得し、巨大なファイルをもう一度調べて、これらの用語を行ごとに削除します。

このプロセスは非常に遅くなります。Javaを使用してこれを行うより簡単な方法を知っている人はいますか?

よろしく

4

1 に答える 1

0

最初に一時インデックスを作成し、その中の情報を使用して最終的なインデックスを生成します。を使用IndexReader.terms()し、それを反復すると、TermEnum.docFreq各用語が得られます。すべての低頻度用語を蓄積し、その情報をアナライザーにフィードします。このアナライザーStopWordAnalyzerBaseは、最終的なインデックスの作成時に拡張されます。

于 2012-04-27T10:25:56.397 に答える