接觸自然語言處理(NLP)後能為外語學習帶來哪些啟發?

上大二,有門課涉及自然語言處理這個領域,學到了一些分析語言的基本概念與方法。想到了一個和語言學交叉的問題,通過運用自然語言處理的知識,可以為外語的學習帶來哪些捷徑以及新思維或者新方法?


謝 @Cici Zhang 邀。(拖延癌拖了一年多的邀請……)

利益相關:做了三年 NLP,主要做過詞向量、語言模型和機器翻譯;學過兩個月阿拉伯語(實在太難,棄療)、半年西班牙語、半年日語、大半年希伯來語、一年俄語、一年拉丁語,以及一點現代漢語、音韻學、音系學、語言類型學。

簡單地說,沒啥幫助。NLP 主要靠編程和數學,學外語主要靠積累和練習、多讀多寫多聽多背,技能樹並不相關。

然而在學希伯來語的時候,有了迷一般的感受。希伯來語是相當小的小語種,屬於閃含語系,和大家通常學的日語韓語或者印歐語系的語言相比,感受頗為不同。簡單介紹一下,閃語有一種基於三輔音字母的構詞系統,書寫的時候只寫輔音不寫母音(教材上教新詞的時候會標母音的發音點,就好像小學語文課文給漢字標拼音一樣,之後就不標了),所以如果你對一個詞不熟悉的話,就要嘗試一下到底應該給輔音中間加什麼母音,然後才能讀出來這個詞,然後會覺得這個讀音好熟悉(或者沒聽過),然後才懂它是什麼意思(或者換一種母音的添加方法接著猜這到底是啥詞)……

剛才那段話有點抽象,我用英語舉個例子:就好像有一個詞被寫成了 bk,遇到的時候先嘗試一下,是不是 baka?好像沒聽過這個詞。再試一下,boku?好像也沒見過……試了好幾次,發現 book 這個讀音好像很熟悉!哦哦,原來是 book 的意思呀。但是,坑爹的是,還有可能有別的加母音的方法,比如說 bake 或者 bike 也都是對的,那到底是哪一個呢?沒辦法,看上下文吧……

這種奇葩語言給我的閱讀帶來了極大的挑戰。在學習別的語言(尤其是印歐語系的語言)的時候,我閱讀的感受野是一次一個單詞,因此讀得比較快;但是我讀希伯來語課文的時候,感受野只有一次一個字母,你能感受到那種絕望么……而阿拉伯語則更加喪心病狂,因為它神奇的連筆書寫以及 alif 的千變萬化,把單詞劃分成一個個字母的時候都讓我遇到了困難(大概感覺就像看草書?),要費牛鼻子勁兒才能把一個單詞拼讀出來。

學這兩門閃語給我最大的感受就是,聽說比讀寫簡單……這對我來說簡直是一件不可想像的事情,就好像大多數人學了十幾年英語,都是閱讀還行聽力捉急,然而竟然有些語言聽說會比讀寫簡單?在讀希伯來語課文的時候,如果我自己讀,就會速度超慢,好多詞都看不懂(很大一部分是母音加的不對,真正的生詞反而沒多少);然而聽老師讀一遍課文,幾乎全部都能聽懂……我跟小夥伴分享我學習的感受,他說,只能聽說不能讀寫,你這不就是文盲么……呃,他說的好像毫無破綻= =

然而,從機器學習的角度講,聽力比閱讀簡單可以找到一些很簡單的解釋:

1、學習一種新語言的時候,如果它用的是一種新的字母體系(比如希伯來語)而不是一種你已知的字母體系(比如說學拉丁語的時候,跟英語字母是一樣的),那麼識別文字的那一部分網路權重就要從頭學起,而不能把之前學別的語言的時候已經訓練好的 OCR 模塊 transfer 過來

2、在自己讀課文的時候,我的感受野僅僅限於當前單詞(甚至字母);但是在聽老師讀的時候,我的感受野會包含更長的上文甚至下文的信息,更長的上文使得我可以更好地利用我頭腦里的語言模型來預測當前詞是什麼(我自己讀的時候因為不熟練,讀到某個詞就把前面的忘得差不多了……),而下文也有助於做一些簡單的 NER(比如說某個生詞是人名,我自己讀的時候加各種母音都不知道它是啥於是就卡住了,而老師讀的時候雖然這個詞沒聽懂,但是一讀後面的動詞就能猜到當前詞是人名),從而促進理解;

3、更不用說老師讀的時候已經把母音加好了,這可是 magic feature,顯然有助於提升文本理解的效果……

更加神奇的是,大概學了半年之後,我終於感覺到我腦袋裡的語言模型開始收斂了……在讀到某個上文的時候,有一定的概率可以猜出下一個詞(word-level language model);或者是讀到上文 + 當前詞的前幾個字母的時候(word-level char-level hybrid language model),能更準確地猜測當前詞,以前那種一個字母一個字母讀課文的痛苦慢慢消失了Orz……

以前學語言就是瞎學,然而學希伯來語的時候,我感覺我腦袋裡有一個進度條,指示我學到了什麼程度!學語言的一大難點就是周期長反饋慢,學了一個月也感覺不到自己的進步;然而假如你訓過語言模型,同時又在學一門特別難的外語的初期,竟然能起到迷之 gamification 的效果!學希伯來語同期我也在學俄語,但是對於俄語就沒有這種效果,心痛。。。。可能是俄語不夠難吧。可惜後來因為實習、找工作什麼的,希伯來語沒繼續學下去了= = 以後如果有機會,我要再撿起來希伯來語,再好好感受感受腦袋裡的語言模型是怎麼收斂的……

題外話就是,後來校招面試微軟 speech 組,面試官講了一下他們現在做希伯來語語音合成的一些問題,我問是啥問題,面試官自己也舉不出來具體例子,就描述了一下那個現象;我回答說:「我明白是什麼情況了。雖然你舉不出來例子,但是我可以給你舉一個 balabala。我知道我是怎麼從一個字母一個字母地讀希伯來語課文變到最後能比較順暢地閱讀整個句子的。這個問題應該在語言模型的層面解決,而不是用語音模型來解決。所以我建議你們再好好調一下語言模型的參數。」再後來就拿了 offer,科科科科……

這裡也可以講一點學外語對做 NLP 的啟示。在學日語之前,我真的沒想過分詞對於非母語者來說是一個很大的難點。還好日語有三套書寫系統(漢字、平假、片假,算上羅馬音有四種),這幾套不同的書寫系統混在同一句話里,對於閱讀簡直非常有幫助啊!這告訴我們,factor 還是很有用的,假如做日語相關研究,不要光給模型輸入詞向量,用一些額外的維度來標記當前字元是漢字、平假名還是片假名,可以讓模型學起來容易很多……愛丁堡的機器翻譯系統 Nematus 里搞的那個 factor,有時候確實是有效果的啊~

最後是私貨時間:安利兩本書,一本是 The Writing Revolution: Cuneiform to the Internet,介紹了世界上各種書寫系統的演變史,以及一些失傳的古代文字被破譯的經過,非常精彩;另一本是 Introduction to Typology: The Unity and Diversity of Language,中文名叫《類型學導論:語言的差異與共性》,裡面介紹了語言里奇奇怪怪的現象,比如說什麼 Hausa 語中形容詞是閉類詞,只有 12 個。我覺得讀這兩本書的話對語言學背景沒啥要求,但是它們都是英文的(後一本有劉丹青的導讀,但是正文是沒有中文翻譯的),有一些術語得邊讀邊查字典(比如在介紹日語文字起源的那部分里,有一個術語叫 on reading,是「音讀」的意思,即某些日語漢字的讀音是從漢語借過去的。不要理解成「論讀書」或者什麼亂七八糟的……)。但是寫得真的超棒啊,enjoy your reading~


不邀自來,一直對這個很感興趣。趕完 paper 順便來答一記。

曾經學過古希臘語和日語,一頭栽進 NLP 大坑也是出於對自然語言的興趣。(然而卻在煉丹之路一去不回頭……)在這個回答里,講一下我關注的一些工作和項目,也許有些偏題,權當拋磚引玉。

在討論 NLP 和語言學習的關係之前,更應該釐清 NLP 和計算語言學的關係,因為題主有意或無意地用 NLP 同時指代了這兩者。在我看來,題主談及「分析語言的基本概念與方法」,更多的是 NLP 中與計算語言學更近的那部分內容而不是 NLP 偏計算機科學的部分。那麼,這些思路在二外習得理論已經早有涉及了,此處就略去不談。

因此,我真正想談及的是, NLP 技術(用來指代 NLP 中 CS 那部分)本身會不會對外語學習有貢獻。同時,想強調一下,無論是課程也好,輔助的電子設備或應用也好,都是輔助性的。學習語言本身還是更需要明確的的目標、努力與時間。

  • 對於古典語言入門來說,NLP 技術是有幫助的

君不見 UCB NLP 的 David Bamman,是 Tufts 大學的 Perseus 項目(Perseus Digital Library)的 senior developer 之一嗎?(舉這個例子只是因為在學古希臘語的時候,基本 tufts dictionary 不離手,剛好又看到 Bamman 參與過這個項目,沒別的意思 - -)

類似的項目還有 The Classical Language Toolkit,一個類似 NLTK 的古典語言處理工具包。詞向量、詞的分散式表示在古典語言上到底會有什麼效果?怎麼用更好地用 NLP 的技術去處理古典語言文本?怎麼用 NER 工具去識別古典文獻中的時間與事件?

好像一下偏到了電子化文獻去了,偏回來。在學習古典語言的時候,這些基於自然語言處理的電子資料庫、詞典一下子解放了諸學子的記憶力,但是它們的交互效果很差,而且也只能應對教科書級別的文本。

當時學古希臘語的時候「背」變位背得昏天黑地(主要是考試閉……卷……),卧槽為什麼第一題就是默寫變位,于是之後嘗試寫了一個 app 去「背」詞法語法。

古典語言的基本功的練習,都只為了——讀古籍。所以古典語言的學習和讀文獻無法分開。讀文獻的時候,遇到不認識的詞怎麼辦?卧槽荷馬史詩怎麼看都看不出這是從哪個詞變位過來的怎麼辦,卧槽這裡怎麼連起來了,卧槽不要一言不合就開始方言啊(母音變化)……

所以,結合 NLP 技術,是否就能讓文獻學研究更為輕鬆一些呢?譬如說上述的問題其實就是古典語言的 lemmatization 問題,但是就目前的 NLP 水平應該還無法處理吧。當然,古典學/文獻學真正重要的、或者說真正有價值的問題遠不在固定的某個時期的語言本身,就正如知道茴字有多少種寫法並不代表文學研究造詣有多高。但是,古典語言的學習畢竟是研究者的基本要求。而古典語言學習的門檻遠比當代語言高,教育資源卻相當稀少。如何利用 NLP 的工具輔助古典語言學習者入門我個人覺得是一件非常有意義的事情(然而沒什麼商機),但這也只是一個外行的想像,因為大部分文獻學研究者都對這些東西無感吧。

  • 學習英語、日語等現代語言?

ACL 系列會議一直有一個挺有意思的 workshop 叫 NLP for BEA,即 building educational applications,已經舉辦過十幾屆了。譬如隨便點開一個:NAACL 2015: 10th Workshop on Innovative Use of NLP for Building Educational Applications (BEA10)

  • Automated scoring/evaluation for written student responses

  • Intelligent Tutoring (IT) and Game-based assessment that incorporates NLP

  • Learner cognition

  • Use of corpora in educational tools

  • Tools and applications for classroom teachers and/or test developers

有興趣的不妨看看這系列 workshop 的 archive,主要是從語言教育者的角度出發,如何更好地教授語言、試題的生成與自動批改,grammar checking 等。

其實我只比較關心語言學習本身,所以沒有太關注這些工作。舉些腦洞例子,NLP 的 QA 任務得到足夠的發展後,以後口語考試是不是就能變成語音識別 + LM + 一些經驗的 metrics 去算考生的 score 呢?是不是能以 Praat (Praat: doing Phonetics by Computer)這種語音學工具為基礎,對語言學習者的口音進行矯正呢?(請自動回想 The Fair Lady 中赫本通過不斷練習 The rain in Spain stays mainly in the plain. 習得比較標準的口音的過程)假如計算機能像 Higgins 教授一樣孜孜不倦地糾正大家的口音的話,是不是就能降低學習成本呢 :)

ETS 的人在 ACL 2016 上做了一個 system demo:Language Muse: Automated Linguistic Activity Generation
for English Language Learners

(p.s. 自從轉進 CS 之後就變成了不聞窗外事,一心碼代碼的工科生,所以一些語言學/古典學常識可能讓方家見笑了 :) 錯謬之處煩請指出。


謝邀,趕paper的間隙回答一下。

從語言學習方法上來講,NLP目前還沒有對我學習外語提供顯著有效的幫助。

不過從對語言的理解來講,還是很受益的。在JHU的時候正好跟導師做multilingual learning相關的工作,導師年輕時精通八國語言,辦公室的書架上也堆滿了語言學書籍。那段時間的工作中get了很多語言學相關的知識,比如:世界上居然有7000+種語言;不同語言在形態學(typology,如subject-verb-object order)、詞形學(morphology)以及句法(syntax)上既有相似也有不同,在跨語言學習的過程中如何充分利用這些性質?是句法決定語義還是語義指導句法?動詞在表達句子語義中扮演什麼樣的角色?同樣的模型為什麼在不同語言上作用不同,比如character-based model?

早期NLP研究,比如parsing,需要人為定義句法產生式規則,也就對語言學的依賴更大一些;而像一些語言學資源的構建(wordnet, verbnet等)過程則更離不開語言學的指導,反過來也能夠使NLP從業者對於語言本身的特性理解更深刻。

很多人之所以覺得NLP與外語學習關係不大,應該是從data-driven尤其是supervised learning的角度來看的。

所以,我覺得NLP和語言學習能夠在一定程度上相互激勵。但是正如劉知遠老師說的,我們的最終目標是使得人類不再需要學習外語:)


謝邀。

應該是沒有。

學習NLP在語言方面主要提高的是C++,Java,和Python的語言能力。

這些都是native language,不能算外語的。


建立了機器翻譯終將取代人工的堅定信念,從此再也沒有認真學過任何一門外語。


可能啟發你多從句法結構思考語言共性,進而產生衝動想去從真實語料中驗證,然後就去學習了新的語言。

最後由於語言學的太多,專業課掛了科。


看論文提高了英語水平算嗎?


人腦就跟神經網路一樣,要有大量的輸入才能沉澱到自己的意識里

輸入的樣本很重要,選擇特徵也很重要,所以學習的資料要找恰當,學習的切入點要找好。


我在一家機器人公司從事自然語言處理,最近正好設計了一套系統,Conversation AI。這套系統就不描述了。

可以設計這樣一套系統,當用戶以學習的方式看一篇外文,可以根據滑鼠移動的位置(作為學習的方式)generate出來用戶正好想知道的(取決於你對用戶的理解)關於語言的接受層面的信息(取決於對信息的整理)。

這個時候要是接受層面的信息,而不是知識層面的信息,這很重要。

由於這個時候信息正好落在一個有秩序的句法分析的位置上,這樣就解決了語法學習的問題。由於這個信息是一個接受層面的信息,這就解決了語言學習的問題。如果配上發音,同時解決了聽力的問題。(關於句法分析的知識可以用來解決發音組成部分的問題,這樣用戶學到的就是地道的發音。)。如果是小孩,還可以配上圖畫。


在HCI、Education Technology以及language technology的研究領域會考慮採用一些NLP技術來輔助外語學習,不過側重點更多是如何利用machine的intelligence去提供一些傳統教學法無法提供的interactivity,幫助用戶提高第二語言的聽、說、讀、寫方面的能力。不少research是結合語言教學方面的研究成果來做的。個人認為是個很promising的方向。


我學了正經的語言學照樣還是沒學會拉丁語。。。

NLP 還是太嫩了(


因為標過很多很多語料

做閱讀理解的時候會不自覺的比較答案與正文之間的各種文本相似度

成功將英語題轉化為數學題


看論文的時候學會了很多單詞,增強了閱讀理解能力。


我是看論文看的 通過了六級考試 這算不算?


沒有任何幫助


做項目時讀一些必要的開源框架里的英文tutorial,還有讀論文,可以稍微熟練下英文讀寫。僅此而已了……


就我個人感覺沒啥啟發。GRE閱讀照樣一塌糊塗。


推薦閱讀:

iPad air2和surface3在學習方面哪個好?
義大利語的思維和語言習慣是什麼樣的?
波斯語現在就業如何?四年後還有市場么?伊朗現在的局面不容樂觀啊。
單純學習英語專業的意義何在?
小語種專業的人在銀行參加「銀行小語種計劃」是什麼體驗?前景如何?

TAG:語言 | 自然語言處理 | 外語 | 外語學習 | 語言學習 |