![]() |
![]() |
![]() |
(2.5) |
![]() |
![]() |
(2.6) | |
![]() |
![]() |
(2.7) |
また,
は以下の式で計算される.
ここで
は単語列
が出現する頻度を表す.
たとえば,``I have dogs .''という単語列に対してとしたbi-gramモデルの言語モデルを適応した場合,単語列が生成される確率は以下の式で計算される.
![]() |
![]() |
![]() |
(2.9) |
tri-gramモデルであれば,
,4-gramモデルであれば
となる.
()式から信頼性の高い値を推定するためには,単語列
が多く出現している必要がある.
しかし,実際には多くの単語列は出現数が0となることが多いため信頼できる値を推定できない場合が多い.
低頻度な語彙の場合,
の値が小さく,信頼性が低い.また,学習データ中に単語列
が存在しない場合,この単語列の出現確率は0と推定される.
そのため,(
)式から信頼できる値を算出するためには,大規模なコーパスを用いて,各単語列の出現数を高める必要がある.
そこで,出現頻度の少ない単語列をモデルの学習から削除(カットオフ)する方法や,
確率が0となるのを防ぐために,大きい確率を小さく,小さい確率を大きくするスムージング手法が提案されている.
スムージングの代表的な手法にバックオフ・スムージングがある.
バックオフ・スムージングは学習データに出現しない
-gramの値をより低い次数の(
-1)-gramの値から推定する.