next up previous contents
次へ: デコーダ 上へ: 統計翻訳システム 戻る: フレーズテーブルの作成法   目次

言語モデル

言語モデルは単語列,文字列に対して,それらが起こる確率を与えるモデルであ る.日英翻訳では,より英語らしい文に対して,高い確率を与えることで,翻訳 モデルで翻訳された訳文候補の中から英語として自然な文を選出する.

言語モデルとして代表的なものにN-gramモデルがある.N-gramモデルは,``単語 列 $ w_{1}^n = w_{1},w_{2},...,w_{n}$ のi番目の単語$ w_{i}$ の生起確率 $P(w_{i})$ は直前の$(n-1)$ 単語に依存する'',という仮説に基づくモデルで ある. 計算式を以下に示す.

$ P(w_{1}^n) = \Pi_{n}^{i=1} P(w_{i} \mid w_{i-1})$

例えば,「He is japanese .」という文字列に対する2-gramモデルは以下のようになる.

$ P(e = \lq\lq He \,is \, japanese \, .'') \approx P(He) \times P(is \mid He) \times P(japanese \mid is) \times P(. \mid japanese)$

3-gramであれば「He is」という2単語の次に来る単語が「japanese」である確率 を考える. 尚,学習データに表れない$N$単語連鎖を確率 0として,$N$-gramモデルを作成すると,言語モデルの性能が悪化する. そのため,$N$-gramモデルはスムージング手法によって0でない確率を割り当てて作 成する. 代表的なスムージング法として,バックオフスムージングがある. バックオフスムージングは,高次の$N$-gramが存在しない場合,低次の$N$-gram で代用する. この代用する低次の確率を,改良した手法がKneser-Neyスムージングである. 言語モデルにおける$N$-gram作成には一般にKneser-Neyスムージングが用いられ ている. 言語モデルの例を表2.6に示す.


表 2.8: 言語モデルの例
\scalebox{1}{
{\tabcolsep=4cm
\begin{tabular}{l}
\hline \hline
-2.36413 cover yo...
...1 cover-up unraveled \\
-1.702948 coverage ,
\\ \hline \hline
\end{tabular}}
}


例えば,一番上の行は $log_{10} (P(yourself\vert cover)) = -2.36413 $を意味して いる.

各スムージングパラメータを用いたときの,言語モデルの例を表2.7に 示す. 尚,表2.7の言語モデルは同一の英文50文を用いて2-gramまでの範囲で作成 したものである.


表 2.9: スムージングパラメータ別の言語モデルの例
\scalebox{1}{
{\tabcolsep=0.5cm
\begin{tabular}{c}
\hline \hline
\multicolumn{1}...
...here \\
-1.454552 and i \\
-1.028583 at the
\\ \hline \hline
\end{tabular}}
}


表2.7の言語モデル作成に用いた英文の例を表2.8に示す.


表 2.10: 表2.7の言語モデル作成に用いた英文の例(全50文より一部抜粋)
\scalebox{1}{
{\tabcolsep=1cm
\begin{tabular}{l}
\hline \hline
i never expected ...
...s drinking though he is being seriously ill .
\\ \hline \hline
\end{tabular}}
}




平成21年3月17日