31#31 | 6#6 | 32#32 | (3.3) |
8#8 | 33#33 | (3.4) | |
6#6 | 34#34 | (3.5) |
また,
35#35 は以下の式で計算される.
ここで, 36#36 は単語列 37#37 が出現する頻度を表す.
たとえば, ``I have dogs . " という単語列に対して27#27としたbi-gramモデルの言語モデルを適応した場合, 単語列が生成される確率は以下の式で計算される.
39#39 | 40#40 | 41#41 | (3.7) |
tri-gramモデルであれば, 42#42, 4-gramモデルであれば 43#43となる.
(3.6)式から信頼性の高い値を推定するためには, 単語列 44#44 が多く出現している必要がある. しかし, 実際には多くの単語列は出現数が0となることが多いため信頼できる値を推定できない場合が多い. 低頻度な語彙の場合, 45#45 の値が小さく, 信頼性が低い. また, 学習データ中に単語列 37#37 が存在しない場合, この単語列の出現確率は0と推定される. そのため, (3.6)式から信頼できる値を算出するためには, 大規模なコーパスを用いて, 各単語列の出現数を高める必要がある. そこで, 出現頻度の少ない単語列をモデルの学習から削除(カットオフ)する方法や, 確率が0となるのを防ぐために, 大きい確率を小さく, 小さい確率を大きくするスムージング手法が提案されている. スムージングの代表的な手法にバックオフ・スムージングがある. バックオフ・スムージングは学習データに出現しない18#18-gramの値をより低い次数の(18#18-1)-gramの値から推定する.