Introduction
Statistical Machine Translation (統計機器翻譯)是一種機器翻譯的演算法,這種方法藉由從 parallel corpus(平行語料庫)語料庫,當成訓練資料,訓練出機器學習的模型,以此將句子翻譯成另一個句子。
平行語料庫中包含大量句子,這些句子意思一樣,但分別用兩種語言寫成,例如:
1 2 3 4 5 6 7 |
|
藉由這種平行語料庫,就可以用統計的方式,讓機器學會如何將一種語言,翻譯成另一種語言。
Noisy Channel Model
Noicy Channel Model 是一種常用的統計機器翻譯的模型。
如果,要把中文翻譯成英文,則可用計算某個中文句子翻譯成英文句子的機率,來找出哪個翻譯結果,是比較好的翻譯。給定中文句子 c ,它翻譯成某個英文句子 e 的機率,為 ,即為,在中文句子為 c 的條件下,出現英文句子 e 的條件機率。
在 Noicy Channel Model 中,有兩個成分:
其中, Language Model 表示英文句子 e 在語料庫中的機率。要建立此模型,用單一一種語言的語料庫做訓練即可。
而 Translation Model 表示給定英文句子 e ,在此條件下,翻譯成中文句子 c 的機率。要建立此模型,需要用平行語料庫做訓練。
用貝氏定理,得出某個中文句子 c 翻譯成某個英文句子 e 的機率,為:
若要得出翻譯最佳的英文句子,則可以求機率最大者,如下:
Example
舉個例子,若要將中文句 「我肚子餓了」 翻譯成英文。假設已經先從從語料庫中,計算出可能翻譯出的英文句子,如下:
則這句中文最有可能的翻譯為 “I am hungry” :
註:本例子已先假設 Language Model 和 Translation Model 都已經先計算好。若要從頭計算 Language Model 可以用 n-gram ,但計算 Translation Model 則需要更複雜的模型,例如 IBM Model 或 Phrase-based Model 。
Reference
本文參考至coursera線上課程
Michael Collins. Natural Language Processing
https://www.coursera.org/course/nlangp