機器翻譯的漫長等待: 談 Web 2.0 翻譯的可能性

Posted By Mr. Thursday

機器翻譯是一項不容易的事情。在等待機器翻譯的技術之前,也許我們可以先考慮以 Web 2.0 的方式來翻譯。想法很簡單,先從 Wikipedia 和 Wiktionary 來看,我們如果打算開始,就是開發一個類似的平台,然後由使用者來貢獻內容,只不過貢獻的內容是「翻譯」的內容。然而光是這樣子,可能還不大夠,首先就是有「誘因」(incentive) 的問題,使用者願意分享翻譯內容的誘因需要思考。其次是商業模式 (business model) 的問題,開發這個平台的人是否能夠獲取報酬。我想 Web 2.0 的服務,最頭痛的應該就是這兩個問題,甚至內容分享上還會有著作權的問題。不過我們既然有了大腦皮質,有問題也不用怕,只要肯花腦筋,我想沒有甚麼問題是無法解決的。下面我就先設想一下機器翻譯可能遇到的問題,然後提出結合以 P2P為架構 的通訊軟體 Skype 的 Web 2.0 翻譯服務,並探討其可能的優點和缺點,如果有興趣的人也不妨繼續烹調這個點子吧!

讓我們先想想,如果要用機器來完成自動化翻譯,需要哪些步驟。大致上可以分成兩個方向,一個方向是先從語言的字句讀出意思來,再根據意思翻一成另外一個語言。另一種做法是看到字句以後,馬上就知道要翻譯成另外語言的那一個句子。這兩種方向的區別也和 strong AI 和 weak AI 的差別一樣,一個是要機器真正了解意思才翻譯,一個是只要能夠翻譯就好,機器是否了解意思與否並不重要。如果要讓機器了解意思,又需要哪些步驟呢?我整理出下面這些步驟:(1) 把句子做自然語言的處理,像是中文有斷詞的問題,英文因為字和字之間有空白,所以沒有斷詞的問題,但是有字尾等變化。這部分可能就會令人頭大。(2) 把處理好的字句依照文法剖析 (parsing) 成一棵樹,知道一句話的主詞動詞受詞分別是哪些字,形容詞是形容哪一個名詞,然而情境 (context或是翻成上下文) 會影響剖析的過程。(3) 根據剖析好的樹,用各種表達方式 (representation) 來表達句子的意思,像是用 first-order logic 的邏輯資料庫。(4) 了解意思之後,再根據意思,把上面的步驟倒著走,翻譯成另外一個語言的字句。這些步驟看起來一整個頭大就是了。

另外一個方向是機器看到以後就翻成另外一個語言。最 naive 的方法就是每講一句話,就翻成另外一句,形成一個來源目標語言句子的一個 pair,只要看到來源語言的某句話,就是目標語言的某句話。譬如說看到 “What’s your name?” 就翻成「您叫甚麼名字」。然而這個方法要儲存太多 pair,而且在固定的文法規則之下,可以產生的句子有太多種,即使刪去不合語意的句子還是會很多,除非是翻譯常用句子,不然就會變成一個很大的查詢表 lookup table。如果用機器學習演算法,像是用 Bayesian Inference,根據條件機率,讓機器經過訓練 (training) 之後,得到一個模型 (model),之後遇到新的句子,不是查詢一個很大的 lookup table,而是根據 model 來回答可能的句子是甚麼。然而因為這種方法是根據在條件機率上面,因此模型的好壞,訓練模型的資料的好壞,都會影響模型的準確性。即使是 Google Translate,也沒辦法百分之百正確。

如果要用 Web 2.0 來解決翻譯的問題,要如何解決呢?我們先縮小我們問題的範圍,讓我們先從一般旅遊會話開始,專業書籍的翻譯,詩詞的翻譯,先暫時擺在一邊。我們逛書店的時候也許會在語言區看到各國語言教學的書籍,有些是臨時惡補型的,像是每一課是一種主題,列舉搭車或是用餐常用的句子,上面一行目標語言的文字,下面用中文解釋,然後用各種音標來標示發音,有一次我還看到越南語,裡面不曉得是「早安」還是「您好」,下面用中文字來標注發音,變成「安各那虧空」。所以上面提到的機器翻譯,還沒有包括語音和文字交流的部分 (Text-to-Speech, Speech-to-Text),如果要解決的話又更頭大了!因為每個人的口音和聲音又不大一樣。

所以我的想法是這樣子的。首先,當我們需要翻譯的時候,我們撥打 Skype 來尋找願意幫忙翻譯的人,這個人至少了解 2 種語言,也就是我們需要翻譯的語言,和自己聽的懂的語言。如果找不到人翻譯,或是可以稍後再翻譯,那麼可以先把目標語言錄下來,使用非同步的方式來翻譯。別人翻譯完的錄音我們也可以自己存下來,變成另一個來源,下次有人同樣問這一句的時候,我們也變成提供翻譯的來源。這一部分是有些效法 P2P 的味道。

至於獲利部份,Skype 通話是由網路和 Skype 收費,如果使用 Skype API 開發,或許可以有其他獲利模式。使用者的部分,可以分成兩種模式,第一種是直接付費,也就是需要翻譯的人願意直接付錢給提供翻譯的人,不過付費的方法 (payment)可能要在想想,是用轉帳還是信用卡付費的方式。第二種則是累積點數,而且是使用者之間彼此累積,也就是說,需要翻譯的人沒有直接付費,而是相當於有個人情給幫忙翻譯的人,下一次需要翻譯的時候,如果剛好會他需要的 2 種語言,就可以還這份人情。點數扮演的角色,只是一個人情紀錄器,提醒使用者下次記得提供翻譯。

這個系統有哪些優點呢?首先,因為是 P2P,所以沒有中央的伺服器需要維護成本。第二,因為翻譯的時候是用錄音的方式,所以不必擔心發音的問題,播放出來就直接是需要的結果。至於缺點或是類似功能的系統為何呢?(1) 搜尋翻譯來源問題,時差、每個人的時間表、以及翻譯的字句是否和上次翻譯的一樣,如何比對上次存下來的錄音就是別人要找的,發生了 Speech-to-Text 或是錄音檔比對的問題,回到機器上面了。 (2) 開發這個平台的獲利來源,因為 P2P 沒有成本,卻也因為 P2P 沒有獲利來源。就我個人的意見,我覺得 Web 2.0 因為是集眾人的力量,所以平台只要開發一次就好,如果用 P2P的架構還可以減少後續維護的成本,因此沒有成本負擔,如果要獲利,要在開發平台後化身為使用者,成為獲利的一份子,這就是我覺得 Web 2.0 獲利來源的可能方式!(3) 翻譯機也有發音,常用句子也可以是先寫下來或錄音起來。翻譯機的發音可能不是容易聽懂,如果有人聲自然發音,會比翻譯機好,也比只用文字來的好,雖然文字至少可以達成基本的溝通,但是有了發音以後會更好。 (4) 談話內容的隱私權,如果是具有個人資訊的句子,翻譯以後可能無法變成新的來源散佈出去,也不希望別人儲存下來,甚至連翻譯的人也不能聽到。這部分可能比較麻煩,也許就先不放在這個系統的問題範圍裡面吧!

所以除了即時用 Skype 尋找翻譯協助以外,也許也可以有類似 Wikipedia 的網站,只不過平常大家把講過的話的錄音檔傳上站,有時間也可以再網站上下載錄音檔回來翻譯成任何一個自己了解的語言。網站如果 P2P 化,同理也可以減少維護成本。開發平台的獲利模式,或是使用者的分享誘因,也是比照上面的方法。如此一來,這就是非同步版本的系統,旅行前可以先上這個網站下載常用句子,真的遇到新的句子再用Skype即時翻譯。

還有一個問題是在翻譯品質,以及翻譯的可信度,這就和「分散式信任學習」有關係了!上面的點數紀錄,除了紀錄人情,也可以紀錄翻譯的品質和可信度,機器可以再從這些點數裡面學習到每個人翻譯的功力如何。另外,這個系統除了讓常用句子儲存在越多人的機器裡面,讓更多人方便下載以外,對於稀少語言,可能比較有幫助,因為翻譯的人只要一次錄音,也避開稀少語言訓練資料稀少的問題,當我們那天到了尼泊爾、不丹的時候,也不怕聽不懂或無法溝通了。因此,在一般旅遊的會話常用句子稀少語言,這個系統或許會有幫助,大家在這個系統上有有足夠的動機來分享,並且在機器翻譯的技術成熟之前先完成翻譯的任務,讓大家平常講過的話也可以成為幫助別人的開端,甚至錄下來以後,或許成為將來機器翻譯的訓練資料 (training data) 呢!

相關網站

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!