天天看點

《大資料原理:複雜資訊的準備、共享和分析》一一1.2 機器翻譯

1.2 機器翻譯

叙述的目的是給我們呈現錯綜複雜和含糊不清。

―scott turow

非結構化資料是指那些沒有被組織成具有某種屬性或數值的數組的資料對象(見術語表,data object)。電子表格将資料分布在各個單元格中,且标有行列位置,是典型的結構化資料。這裡給出一個非結構化資料的例子,你會了解到為什麼資料分析師更喜歡電子表格而不是自由文本。由于沒有結構,資料内容不能有效地被收集和分析。而大資料無邊無際,文本結構化的任務必須能夠自動和快速地完成。

在衆多自由文本計算手段中,機器翻譯表現突出。機器翻譯的最終工作是将文本從一種語言翻譯成另一種語言。機器翻譯過程大緻如下:從文本語句着手,分析語句中各個單詞的文法成分,最後按句子邏輯的順序排列文法成分。完成了上述過程後,可以通過字典來查找每個文法成分的同義詞,并借助新的外語語言的文法定位規則來重新組織語句。由于這個過程使用了外語語言中語句結構的自然規則,是以通常稱此過程為自然語言機器翻譯。

這一切是那樣簡單而直接。在某種意義上,它确實如此,隻要你有合适的查詢表。目前,很多效果還算理想的自動翻譯應用程式正被廣泛使用着,但在不少情況下,這些應用程式會出現完全失效的現象。正如你會想到的那樣,對于複句的自動翻譯常常出現錯誤。除了句子的複雜性等問題,人類所說的語言本身并沒有太大意義,這是自動翻譯面臨的更深層次的問題,畢竟計算機無法在“沒有意義”的語句中發現其背後的意圖。如果作為人類的我們能夠在英語語言中發現含義,這也隻是因為我們向讀到的句子強加了文化偏見,而創造出了語言原本不存在的意義。

在一些英語固有的局限性上花些時間是值得的。英語單詞具有多态性,它的含義取決于它出現在語句中的哪個地方。這種多态性會産生一些喜劇效果(例如,“馬提尼(martini)和酒吧的常客都喝醉了”,這裡,“martini”可解釋為馬提尼酒或叫馬提尼的人)。人類沉浸在自己的語言文化中,毫不費力地為多态詞組創造更多的含義,比如,“a bandage wound around a wound”(意為“繃帶纏繞的傷口”),“farming to produce produce”(意為“農業生産農産品”),“please present the present in the present time”(意為“請在現在展示禮物”),“dont object to the data object”(意為“不要反對該資料對象”),“teaching a sow to sow seed”(意為“教母豬播種”),“wind the sail before the wind comes”(意為“在大風來臨之前收起風帆”),還有其他無數類似的例子。

詞語缺乏組合性,即詞語的意思無法通過分析詞根推測出來。例如,鳳梨(pineapple)裡沒有松樹(pine)也沒有蘋果(apple),茄子(eggplant)裡沒有雞蛋(egg),漢堡(ham-burger)是由牛肉而非火腿(ham)制成的。你可以說一個夫妻(lover)會愛(love),但不能說一個手指(finger)會“fing”。素食主義者(vegetarian)會吃蔬菜(vegetable),但人道主義者(humanitarian)不會吃人(human)。又例如,忽視(overlook)和監視(oversee)從邏輯上講應該是同義詞,但事實上它們是反義詞。

很多時候,詞語的意思是由這個單詞的第一個字母決定的。例如,nice(尼斯,法國的一個城市)和nice(友好的),polish(波蘭語)和polish(擦亮),herb(賀伯,人名)和herb(香草),以及august(八月)和august(威嚴的),等等。

如果付出足夠的努力,機器翻譯是可以應付上述所有任務的。盡管如此,世界上還沒有一台計算機可以在資訊學意義上翻譯出意思清晰、邏輯合理的語句(見術語表,meaning)。作為已涉獵機器翻譯工具開發的我,常常抱怨具體化的正常使用―憑借具體化的過程可以推斷出語句的主語,但不會明确指出(見術語表,reification)。具體化是由代詞和其他一些主語指代來實作的。

舉個例子,某報紙的新聞标題是“husband named person of interest in slaying of mother”。首先,我們可以推斷出丈夫(husband)是嫌疑犯(person of interest),而不是說丈夫提供了嫌疑犯的名字。了解犯罪關鍵點的人都知道,這句話暗示這個家庭有丈夫、妻子和至少一個孩子。有妻子是因為有丈夫,有孩子是因為有母親的存在。而且這個母親是指這個丈夫的孩子的母親,而不是丈夫自己的母親。也就是說母親和妻子是同一個人。那麼,妻子和丈夫分别是孩子的母親和父親。是以,這個新聞标題傳達出的意思是丈夫是殺害妻子也就是孩子母親的疑犯。這裡“husband”具體化了妻子的存在(妻子是從夫妻關系具化而來),“mother”具體化了孩子的存在。同時,句中沒有出現單獨的丈夫或者媽媽的字眼。由一個個單詞組成的語句就是我們所能掌握的全部内容,但其本身沒有任何意義。任何從語句中獲得的意義都是由我們生動的想象而合理創造出來的。

通常,一條語句包含一串人物的具象,而這些具象對了解語句含義毫無作用。例如,“john married aunt sally”(約翰和莎莉阿姨結婚了),這裡,sally前面有一個家庭關系名詞aunt,但這個關系名詞沒有對在該句子中提到的另一個人物進行任何修飾(例如,sally不是john的aunt)。然而,aunt這個單詞具體化了一些個體,尤其是sally是他們的阿姨的那些個體。這種具體化似乎除了使情況更混亂外沒有其他任何目的。

又例如,某報紙的新聞報道寫到:“她的丈夫在1944年執行任務後在法國南部失蹤,安東尼・德・聖埃克蘇佩裡的遺孀坐下來,寫了這本有關他們戲劇性婚姻的回憶錄。”這裡有兩個具體的人:“她的丈夫”和“安東尼・德・聖埃克蘇佩裡的遺孀”。第一個短語“她的丈夫”是為了第二個短語中人物的訓示代詞(“她”)而建立的人物關系(“丈夫”)。第二個短語的人物由德・聖埃克蘇佩裡(即“寡婦”)的關系具體化,剛好是第一個短語中的人的具體化(即“德・聖埃克蘇佩裡是她的丈夫”)。

每次我們寫以自我為參照的具體化語句時都會使用一個代詞:“it was then that he did it for them”。第一個“it”具體化一個事件,單詞“then”具體化了時間,單詞“he”具體化主語,第二個“it”具體化一些動作,單詞“them”具體化一個代表具體化的行動的接受者的群體。

嚴格來說,上述例子都沒有什麼意義。因為句子的主語沒有被正确辨別,主語的引用也含糊不清。這種語句不能夠被計算機有效評估。

這裡舉最後一個例子:“do you know who i am?”(你(們)知道我是誰嗎?)這個句子中沒有可辨別的個體,每個人都具體化為代詞“you”和“i”。該句中隻有很少的單詞,且一半是不必要的。單詞“do”“who”“am”基本是無關緊要的,沒有傳遞資訊的意圖。在面向對象的程式設計中,這句話可轉變為一個聲明“you know me”和查詢消息“true?”(見術語表,object-oriented programming)。在這種問題上,我們已經深入很多。對象、聲明和查詢消息将會在後續章節中讨論。

精準的機器翻譯已經不僅僅是“非常困難”,而是基本上不可能。這是因為計算機不能了解廢話。對于機器翻譯,我們可期盼的最佳情況是,對讀者來說,翻譯語言中表述的文本語義是可利用的,是與原始語言中的表述一緻的。期望語句能夠從文法上被分析出各個資訊單元隻能是幻想。雖然幻想基本不能實作,但如果對資訊含義有深刻的了解,不論是對哪種語言進行翻譯,那麼翻譯出來的句子就有可能有意義。第4章将會有這方面的讨論。

繼續閱讀