文補完実装用のユニグラム言語モデルを作成しました。私はすべての単語とその出現回数を持っています。
ここからそれらを比較する方法について混乱しています。それぞれのケースの確率を計算し、最大のものを取る必要があると思います。
使用できる単語が 3 つある場合、各単語の出現回数を比較し、最も高い ? を採用します。これは適切な実装ですか?
または、各単語の出現回数を、トレーニング セットのすべての (異なる?) 単語の数で割りますか?
ありがとうございました。
文補完実装用のユニグラム言語モデルを作成しました。私はすべての単語とその出現回数を持っています。
ここからそれらを比較する方法について混乱しています。それぞれのケースの確率を計算し、最大のものを取る必要があると思います。
使用できる単語が 3 つある場合、各単語の出現回数を比較し、最も高い ? を採用します。これは適切な実装ですか?
または、各単語の出現回数を、トレーニング セットのすべての (異なる?) 単語の数で割りますか?
ありがとうございました。
スムージング (Turing、Kneser-Ney など) を使用したくない場合は、各単語 (フォーム) の生のカウントを取得し、それらをコーパス (テキスト) の合計単語数で割ります。これにより、各単語の確率が得られます。生成されたテキストは次のようになるため、常に確率が最も高いものを選択するとは限りません。
'the the the the the the the ...'
代わりに、確率に従って単語を選択する必要があります (説明については、こちらをご覧ください)。
ところで、それを改善するための提案が必要な場合は、コードを投稿する必要があります。