MALLET を使用して新しいドキュメントのトピック分布を推測する方法を次に示します。これを行う方法を探していたので投稿すると思いましたが、多くの回答がありますが、どれも包括的ではありません. これにはトレーニング手順も含まれているため、さまざまなファイルが互いにどのように接続されているかがわかります。
トレーニング データを作成します。
$BIN_DIR/mallet import-file --input $DIRECTORY/data.input --output $DIRECTORY/data.mallet --keep-sequence --token-regex '\w+'
はdata.input
、ファイル ID、ラベル、および一連のトークンまたはトークン ID を含むドキュメントです。次に、好きなパラメーターを使用して、このデータでモデルをトレーニングします。例えば:
$BIN_DIR/mallet train-topics --input $DIRECTORY/data.mallet \
--num-topics $TOPICS --output-state $DIRECTORY/topic-state.gz \
--output-doc-topics $DIRECTORY/doc-topics.gz \
--output-topic-keys $DIRECTORY/topic-words.gz --num-top-words 500 \
--num-iterations 1000
後で、トレーニング済みのモデルとトレーニング データを使用して推論を作成できます。
bin/mallet train-topics --input $DIRECTORY/data.mallet --num-topics NUMBER --input-state $DIRECTORY/topic-state.gz --no-inference --inferencer-filename $DIRECTORY/inferencer-model
次に、トレーニング データからパイプを使用して新しいドキュメントのファイルを作成します。
bin/mallet import-file --input $DIRECTORY/new_data.input --output $DIRECTORY/new_data.mallet --use-pipe-from $DIRECTORY/data.mallet --keep-sequence --token-regex '\w+'
新しいドキュメントのトピックを推測する:
bin/mallet infer-topics --inferencer $DIRECTORY/inferencer-model --input $DIRECTORY/new_data.mallet --output-doc-topics $DIRECTORY/new_data_doc_topics --num-iterations 1000