3

私は言語モデリングに不慣れ で、大きなテキスト ファイル (~7gb.) からkenlm (またはthis ) を使用して 3grams 言語モデルを作成します。言語モデルからバイナリ ファイルを作成し、Python で次のように呼び出します。

import kenlm
model = kenlm.LanguageModel(<my .klm file>)
model.score(<my sentence>)

結果として負の数が得られます.スコアリングの文を変更すると、結果は負のままですが、変更されます.大きなテキストファイルの文の1つを正確に指定しますが、悪い負の数が得られます(テキストファイルにない文)否定的な結果が何を意味するのか、それを肯定的で通常の結果に変換して、いくつかの文の間で最も正しい文を選択するにはどうすればよいのかわかりません。

4

2 に答える 2

2

0 から 1 の間の対応するスコアを取得するには:

import math
print(math.pow(10,model.score(<my sentence>)))
于 2018-04-02T03:25:01.410 に答える
2

最後の負の数、たとえば -9.585592 は文の対数確率です。これは対数であるため、10 をその数値の累乗で計算する必要があります。これは約 2.60 x 10-10 です。多分これはあなたが探している正の数です。

詳細はこちら

于 2017-02-28T08:25:25.127 に答える