傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

這個世界上有多少種語言?

7117種。沒錯,不是方言,而是正在被使用的語言。

人類傳遞信息的載體是語言,不同語言之間的交流靠的是翻譯,比如世衛組織在疫情防控中,在官網上發佈了一個公告,號召大家勤洗手以預防感染。

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

作為一個國際組織,這裡使用的默認語言是英語,但是在網站的右上角也有一個切換語言的地方,提供包括中文在內的6種語言可以選擇。

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

儘管這6種語言覆蓋了世界超過35億的人口,但是顯然是遠遠不夠的。

求助於翻譯軟件?以目前世界上適用範圍最廣的谷歌翻譯來說,現在只能支持100多種語言,也是現存語言的零頭。

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

像WHO發佈的這種關於全球疫情的消息,肯定是希望能夠覆蓋到更多的人,但是目前很多地區面臨語言障礙而導致信息的傳播受阻,哪怕只是想告訴人們要勤洗手。

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

為了讓更多的人能夠了解洗手的重要性,一位名叫Daniel Whitenack的AI大佬用使用了多語言無監督方法來訓練500多種語言的跨語言詞向量,然後從現有目標語言文檔中提取“洗”、“手”的部分,然後將這些部分組合起來,生成了510種語言中“洗手”的短語翻譯。

Daniel用的是Facebook開發的MUSE(Multilingual Unsupervised and Supervised Embeddings)庫,訓練了544種語言和英語之間的跨語言詞向量,而這些向量允許從現有文檔中提取與目標短語“洗手”相似的短語。

Daniel與語言社區SIL International的同事合作完成了這項工作,他們的成果可以在Ethnologue指南頁面上看到——一份有著454種譯文的新冠病毒指南。

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

下面一起來看看他是怎麼做的吧!

拆解“洗腳”和“你的手”,變成“洗手”

首先,SIL International已經完成了2000多種語言的語義工作,目前管理著1600多種語言項目文檔。所以我想他們可能已經將“洗手”或類似的短語多次翻譯成數百種語言,這個猜想得到了證實!

因此我能夠從我們的900多種語言檔案庫中快速收集文檔,主要是完整的教學材料和聖經等。這些文檔中的每一個都有英文對照,其中必然包含短語“洗手”或類似的短語,例如“洗臉”。此外,這些文檔的質量都很高,並與當地語言社區合作進行了翻譯和核查。

語言數據集有了!

但是,這裡有兩個問題需要克服。首先,此數據只有大多數語言的數千個樣本,這與用於訓練機器翻譯模型的數百萬個樣本相比還是太少;其次,即使文檔中包含目標語言中的“洗手”一詞,我們也不知道該詞在周圍文本中的確切位置

對於低資源語言數據集,我們當然可以利用機器翻譯中的一些最新技術,但是需要花費一些時間來調整自動化的方法,以快速適應每種語言配對中的翻譯模型。此外,我們定位的許多語言都沒有現有的基準,可以與之比較評估指標,例如BLEU得分。

於是我選擇嘗試通過在現有文檔中找到短語本身或短語的組成部分(例如“洗手”或“你的手”)來構建“洗手”一詞

為了找到這些,我使用Facebook Research的Multilingual Unsupervised and Supervised Embedding(MUSE)庫訓練了每個跨語言詞向量。MUSE將單語言詞向量作為輸入(我使用fasttext生成了這些向量),並使用對抗性方法學習了從英語到目標向量空間的映射,該過程的輸出是跨語言詞向量。

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

一旦生成跨語言詞向量後,我們便可以在目標語言文檔中找到短語。事實證明,整個文檔中非常清楚地使用了“洗臉”一詞以及“手”,“洗你的”等分離的實例。

對於每種語言,我都會在期望該短語出現的區域中搜索N-gram(基於英語並行匹配中的用法)。使用跨語言詞向量對N-gram進行矢量化處理,並使用各種距離度量將其與英語短語的矢量化版本進行比較,向量空間中最接近英語短語的N-gram被確定為目標語言匹配。

最後,將與他們的英語對應詞相匹配的組成短語組合在一起,以生成目標語言中的“洗手”短語。這種組合再次利用了跨語言向量,以確保以適當的方式組合。

例如,如果我們在目標語言中匹配了短語“洗腳”,則必須將與“腳”相對應的N-gram替換成與“手”相對應的N-gram,下面是伯利茲·克里奧爾(Belize Kriol)英語的示例:

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

當然,在此匹配過程中我們做了些假設,所以這個過程很可能不會產生語法上正確的預測。例如,我假設在大多數語言中,“手””一詞和“腳”一詞都是一個詞長(詞之間用空格和標點符號隔開)。這個假設肯定跟實際是有出入的,以後我們可以克服其中的一些侷限性並擴展該系統,但是就目前而言,該方法可以在沒有任何翻譯系統支持的情況下提供相對可靠的多語言翻譯結果。

探索一條低數據條件下的短語翻譯方法

到目前為止,我已經能夠訓練544種語言的跨語言詞向量,我使用上面的方法嘗試為找出這些語言 如何表示“洗手”。

因為缺乏許多語言對的一致數據,所以我使用了單獨的保留文檔,其中也包含“洗手”的成分,以幫助驗證所構造短語中的標記。

以下是來自Ethnologue語言統計數據的翻譯樣本:

傳播信息而不是病毒!程序員藉助AI,用500多種語言翻譯“洗手”

構造的短語類似於參考譯文,或者是“洗手”的替代表達方式。例如,在保加利亞語中,我預測為“умийръцете”,而在Google翻譯中,預測為“Измийсиръцете”。但是,如果我使用Google翻譯對我的預測進行回譯,我仍然會得到“洗手”。

在某些不確定性因素下,我無法與參考譯文(例如,所羅門群島的Pijin [pis]或帶有人工註釋範疇進行比較,但我仍然可以驗證“洗手”(wasim)和“手”(han) )分別用於其他必然談及洗或手的參考文件中。使用此方法可以驗證大約15%的翻譯,我希望在收集參考詞典時能進行更多的驗證。

請注意,即使對於像意大利語這樣的高資源語言,我最多都使用每種語言的大約7000個句子來獲得以上翻譯,也不依賴於語言對之間對齊的句子。儘管存在數據非常匱乏,無監督情景,但對於兩個系統都支持的語言,我仍然能夠獲得質量與Google Translate相似的短語。

從某種程度上來說,這證明了我使用的這種“混合”方法(詞向量的無監督對齊+基於規則的匹配)在將短語翻譯成數據化很少的語言中,是行之有效的。

大數據文摘出品

作者:Daniel Whitenack

編譯:lin、曹培信


分享到:


相關文章: