バイグラムでトピックモデルを構築したいと考えています。 Javaでこれを実装するには、どのような方法が推奨されますか?マレットを使ったトピックモデリングでバイグラムをサポートするJava Api
現在、GoogleではMallet Java APIを使用しています。 具体的には、ParallelTopicModelは、トークンをインスタンスオブジェクトのデータパラメータに渡します。
ありがとうございます。
バイグラムでトピックモデルを構築したいと考えています。 Javaでこれを実装するには、どのような方法が推奨されますか?マレットを使ったトピックモデリングでバイグラムをサポートするJava Api
現在、GoogleではMallet Java APIを使用しています。 具体的には、ParallelTopicModelは、トークンをインスタンスオブジェクトのデータパラメータに渡します。
ありがとうございます。
nグラムを考慮する最も簡単で信頼性の高い方法は、入力を変更することです。たとえば、new york
をnew_york
に置き換えて、_
を文字として受け入れるパターンを使用してトークン化することができます。マレットはあなたがドキュメントをインポートする場合、単一のトークンとして扱うために文字列を含むファイルを指定することができます:
bin/mallet import-file --help
A tool for creating instance lists of feature vectors from comma-separated-values
...
--replacement-files FILE [FILE ...]
files containing string replacements, one per line:
'A B [tab] C' replaces A B with C,
'A B' replaces A B with A_B
Default is (null)
使用のこのモードは、特定のnグラムを特定する必要があります。また、すべてのバイグラムを含むように入力ファイルを変更することもできますので、to be or not to be
はto_be be_or or_not not_to to_be
になります。それが何か役に立つものがあるかどうかは分かりません。
n-gram識別を「ネイティブに」サポートするトピックモデルのバリエーションもありますが、トレーニング時間とモデルの品質に大きなコストがかかります。私はそれらのいずれかを使用することをお勧めしません。