Java API を使用してトピック モデリングを実行しようとしています。パッケージに便利なサンプルが付属しています。ただし、データのサイズがはるかに大きいことを考えると、1 つのファイルからすべてをインポートするのは現実的ではないと思います。
別の MALLET の質問にリンクされているパワーポイントのプレゼンテーションを見て、Java コードの例で使用されている CsvIterator の代わりに使用できると思われる FileIterator と呼ばれるものを見つけました。ただし、正しく使用できているかどうかはわかりません。私はそれを使ってコードを実行しようとしましたが、FileIterator を作成している行で非現実的なほど多くの時間がかかってスタックしました。この問題を分析するために、まだ MALLET コードを掘り下げていません。他の誰かがすでにそれについてもっと知っているかもしれないと思いました。ドキュメント自体が保存されている複数のディレクトリを含むディレクトリを渡すことはできますか?
また、一度に大量のデータを与えている可能性もあります。
したがって、私の全体的な質問は、実際には 2 つの部分に分かれています。
1) MALLET はどのくらいの規模で機能しますか? トピックを追加したい 6 行のドキュメントが 500,000 件ほどあります。そもそもこれはMALLETで実現可能ですか?
2) 上記の答えが実行可能である場合、MALLET でこのデータをインポートする最良の方法は何ですか? MALLET では実行できない場合、他に何が使用できるかについての提案はありますか?
編集:確かに FileIterator を使用できましたが、その使用法は思ったほどではありませんでした。私がやろうとしていたことを行う最も簡単な方法は、1 つのインスタンスを含むすべての個別のファイルを 1 つのディレクトリに配置することです。次に、このディレクトリを FileIterator にフィードすると、CsvIterator と同じように機能します。
スケーラビリティに関しては、妥当な時間内に約 10,000 の短いドキュメントを実行できましたが、LDA はすべてのドキュメントを同時に検討するため、すべてのドキュメントを一度に実行することは現実的ではないと思います。ただし、MALLET の TopicInferencer クラスを使用すると、モデルに合理的に収まる限り多くのドキュメントを取得し、残りのドキュメントのトピックを推測できます。これは私のニーズには十分でした。