自然語言處理掃盲·第二天——白話機器翻譯原理


由於最近要做一些自然語言處理的分享,但是我又不是科班出身,所以只能臨時抱佛腳的學習以下基本的原理。但是由於底子很薄,所以只能憑借google和baidu有限的資料進行總結。這里不會看到太復雜的公式,因為公式層面我也理解不了....就當做是從0學習自然語言處理的過程的記錄吧!

更多內容參考:

如果有哪里說的不對的,還請嚴厲指正,小博主一定虛心領教,仔細研究!以免誤導大眾...

下面就步入正題吧!

這個方向在幾個大廠應該都比較成熟了,比如有道翻譯、百度翻譯、Google翻譯等等。我平時用的有道比較多,一般都是去翻譯個英文文檔之類的。因為有道做的詞典比較專業,因此在英譯漢或者漢譯英的時候認可度能高點。

我們先來看看機器翻譯是怎么被玩壞的吧!

PS: 這個梗真的不是我黑誰!我也是從PPT上面看到的,覺得這個例子很不錯.....

話說回來,在機器翻譯的領域,有很多難點。比如,語言的復雜程度,上下文的關聯等等。想想看,同樣是漢語,山東大漢和陝西小哥以及東北姑娘說出來的都是不一樣的;再想想漢語中的博大精深,同樣一段話,上下文不同表達的含義也是不一樣的;再復雜點,涉及到兩種語言的切換,就更恐怖了。

目前業內主要的實現手段有基於規則的、基於實例的、基於統計的以及基於神經網絡的,看着感覺蒙蒙噠,我們來具體的了解下吧:

基於規則的機器翻譯

基於規則的機器翻譯,是最古老也是見效最快的一種翻譯方式。

根據翻譯的方式可以分為:

  • 直接基於詞的翻譯
  • 結構轉換的翻譯
  • 中間語的翻譯

從字面上理解,基於詞的翻譯就是直接把詞進行翻譯,但是也不是這么簡單,會通過一些詞性的變換、專業詞匯的變換、位置的調整等一些規則,進行修飾。

可以看到翻譯的質量很差,但是基於這種詞規則的翻譯,基本上可以輔助我們做一些翻譯的工作;而且這種翻譯也帶來了機器翻譯的0到1的飛躍

那么基於結構轉換 其實就是不僅僅考慮單個詞,而是考慮到短語的級別。比如根據端與do chicken有可能被翻譯成烹飪雞,那么整句話就好多了我們烹飪雞好嗎

最后一種就是基於中間語的翻譯,比如過去在金本位的年代,各國都有自己的貨幣。中國使用中國的貨幣,美國使用美國的貨幣,那么貨幣之間怎么等價呢?就可以兌換成黃金來衡量價值。這樣就可以進行跨幣種的買賣了..翻譯也是如此,倘若由兩種語言無法直譯,那么也可以先翻譯成中間語,然后通過中間語進行兩種語言的翻譯。

基於統計的機器翻譯

基於統計的機器翻譯明顯要比基於規則的高級的多,因為引入了一些數學的方法,總體上顯得更加專業。那么我們看看它是怎么做的吧!

首先,我們有一段英文想要把它翻譯成漢語:

we do chicken right

會根據每個詞或者短語,羅列它可能出現的翻譯結果:

我們/做/雞/右
我們/做/雞/好嗎
我們/干/雞/怎么樣
...

這樣的結果有很多種...

然后我們需要一個大量的語料庫,即有大量的文章...這些文章會提供 每一種翻譯結果出現的概率,概率的計算方式可能是使用隱馬爾可夫模型,即自己算相鄰詞的概率,這個原理在《數學之美》中有介紹,感興趣的可以去看看。

最終挑選概率最高的翻譯結果作為最終的輸出。

總結來說大致的流程是:

因此可以看到,這種翻譯方式依賴大量的語料庫,因此大多數使用這種方式而且效果比較好的都是那種搜索引擎公司,比如Google和Baidu,他們依賴爬蟲技術有互聯網中大量的文本資料,基於這些文本資料可以獲取大量的語料來源,從而為自己的翻譯提供大量的依據數據。

基於實例的機器翻譯

這種翻譯也比較常見,通俗點說就是抽取句子的模式,當你輸入一句話想要翻譯的時候,會搜索相類似的語句,然后替換不一樣的詞匯翻譯。舉個例子:

I gave zhangsan a pen
I gave lisi an apple

就可以抽取他們相似的部分,直接替換不一樣的地方的詞匯就行。這種翻譯其實效果不太好,而且太偏領域背景...

基於神經網絡的機器翻譯

在深度學習火起來后,這種方式越來越受關注。我們先來了解下什么是神經網絡:

基本的意思就是我們會有很多的輸入,這些輸入經過一些中間處理,得到輸出。得到的輸出又可以作為下一個計算過程的輸入...這樣就組成了神經網絡。

在機器翻譯中主要使用的是循環神經網絡,即上一次的輸出可以作為這次的輸入繼續參與計算。這樣有什么目的呢?

就是在翻譯的過程中,雖然是以句子為單位進行翻譯的,但是每一句話都會對下一句話的翻譯產生影響,這樣就做出了上下文的感覺....比如do chicken單純的翻譯有很多中翻譯的結果。但是如果前面出現過廚師等這類的詞句,那么這個單詞就可以更傾向翻譯成烹飪雞

這種操作模式,在問答系統中也會遇到...之后會有所介紹.

總結

總結的來說,如果想要快速搭建一個機器翻譯的系統,可以先從基於規則開始,添加一些領域背景的知識,就能達到一個比較快速的效果。而基於統計的方法從數據獲取的成本和模型的訓練來說,成本都很高...

針對機器翻譯是否能代替人工翻譯,知乎上面也有不少討論,我這個門外漢也覺得,暫時不太可能,不過機器翻譯作為人工翻譯的一種輔助手段還是很必要的。比如那些非專業的翻譯人士,如寫論文的研究生、看前沿技術的程序員小朋友,這種機器翻譯可以作為一種很有效的閱讀輔助的手段,因為大部分的時候,都是直接把某一段英文粘貼到翻譯的輸入框,然后按照翻譯出來的結果,自己再組織理解...(我想大部分人都是這么用的吧~ 原諒我英語差)

那么機器翻譯的掃盲就暫時介紹到這里了,之后會再研究下情感分析相關的內容...

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM