周杰倫______了?計算語言學告訴你答案
部分朋友這幾天被這條報道刷屏了:
周杰倫昆凌二胎
看到微博上的話題之後,小編就去微博上搜索了一下,打入了「周杰倫」這個關鍵詞之後,微博就自動跳出了「周杰倫二胎」這個短語。
很多朋友相比都用過搜索系統的建議功能,我們在谷歌和微博上搜索關鍵詞的時候,系統會自動給我們匹配一些系統認為最有可能緊接著你的輸入詞的詞語。
也就是說,根據你的輸入詞A,系統會反饋一個A之後出現概率最高的詞B,構成一個AB短語。
實際上,不僅僅是計算機系統,人類的語言本能就賦予了我們去預判任意一個詞(字)之後的詞(字)的能力。比如這樣一則報道:
特朗普心腹閃辭或成新水門事件
這句話中的短語有 「特朗普」 「心腹」 「或」 「成」 「新」 「水門」 「事件」 這麼7個。
根據排列組合知識,這句話可以有 7! = 5040 種不同的排列方式。如果將每個字都視為一個個體的話,排列方式還會更多。
例如,如果我們改變一下語序,這句話可以變成:
特朗普或新水門事件成閃辭心腹
因為順序的不正確性,這就變成了一個不知所云的句子。
假設我們以 「特朗普」 開頭,以午餐君本人的感知的話,以上這麼多詞語中,最自然最貼切的 「下一個詞」,肯定就是 「心腹」 了。
這和計算語言學中的n元(n-gram)模型的概念十分類似。
n元指的是在文本中連續出現的n個詞語,n元模型是一種基於概率論的語言模型,通過出現n個詞語的概率來推斷整體句子的結構。
概率論??啥??咱這還是語言學吧?
n=1的時候被稱作單元模型(unigram),n=2的時候被稱作雙元模型(bigram),n=3的時候則被稱作是三元模型(trigram)。這三種則是現今應用最為廣泛的自然語言處理模型。
自然語言處理大師弗萊德里克·賈里尼克(Frederek Jelinek)認為,一個句子的合理程度取決於它出現的可能性。如果一個句子出現的可能性非常大,那它就是一個合理的句子。
在剛才的例子中,「特朗普心腹閃辭或成新水門事件」 的出現概率最高,所以這也就是最合理的句子。
恩,看起來很簡單嘛……
那麼午餐君要開車了,還請各位食客坐好。以下內容會非常的數學,文科生請做好防衝擊準備。
首先,需要給大家介紹一個著名的數學家,他的名字叫貝葉斯(概率論界的貝爺),他搞了個理論,叫貝葉斯定理,是長這個樣子的:
當然,這不是很關鍵也不是很重要。重要的是在定理的推論中,有一條這樣子的公式:
P (AB) = P (AB) P(B)
其中,A、B 均為事件。 P(AB) 表示的是在事件B發生的條件下事件A發生的概率,P(AB)則表示事件AB同時發生的概率。
同時,貝葉斯定理也適用於兩個以上的事件,這也是我們需要用到的貝葉斯定理的形式。例如,如果存在事件C,那麼我們有:
P(ABC) = P (ABC) P(BC) = P(ABC)P(B)P(CB)
那麼我們來講一講這位貝爺是怎麼推導出這個公式的,哦不對,跑題了。希望你還沒有懵逼,並且可以繼續看下去...
回到自然語言處理的問題。讓我們假設 w_i 是文本中任意一個詞,以及我們運用三元模型,那麼已知wi在該文本中的前兩個詞 w_(i-2) 和 w_(i-1),我們就可以用上文中的公式,以及 條件概率 P(w_iw_(i-2),w_(i-1)) 來預測wi出現的概率。
如果用W表示文本中任意一個詞語序列,由n個片語成,那麼W=w1w2w3…wn,W出現的概率,即P(W)則為:
P(W) = P(w_1)P(w_2w_1)P(w_3w_1w_2)...P(w_nw_1w_2...w_(n-1))
也就是說,為了預測句子中第n個詞的概率,我們需要知道前面所有詞知道的概率以及相關條件概率,這樣的計算過於複雜。
而三元模型和二元模型則是幫助我們簡化這一計算的概率模型。在三元模型中,某個詞出現的概率只和前兩個詞有關。
基於三元模型的話,我們有:
P(W) = P(w_1)P(w_2w_1)P(w_3w_1w_2)P(w_4w_2w_3)...P(w_nw_(n-2) w_(n-1))
使用上文提到的特朗普心腹閃辭或成新水門事件的例子,代入公式,我們可以得出這樣的概率:
P(特朗普心腹閃辭或成新水門事件)= P(特朗普)P(心腹特朗普)P(閃辭特朗普心腹)P(或心腹閃辭)P(成閃辭或)P(新或成)P(水門或成新)P(事件新水門)
而其中任意條件概率,我們都可以通過上文提到的貝葉斯定理里的公式進行計算,例如:
P(心腹特朗普)= P(特朗普心腹)/ P(特朗普)
n元模型在概率論和計算語言學中得到了廣泛的應用。
例如在語音識別領域,音素和音素序列經常會通過n元模型來計算他們的分布,在語言識別中,字母的序列經常被用來當作某一語言的標誌。
當然,n元模型作為一個概率模型,肯定不是完美的。
它的缺點也很明顯,因為n元模型只考慮到了句子表層結構的詞語順序,而忽略了從深層結構到表層結構的成分位移。例如英語中 wh-movement,wh疑問詞被認為是從相關的短語中移位到句子的最前端,這樣的移位會使計算機計算概率的時候出現偏差。
另一個問題則是不經常使用的辭彙導致的整體概率偏低問題。
一般認為,對於不經常使用的辭彙,其單獨出現的概率很低,甚至無限接近於0。如果在一個句子中存在一個不經常使用的辭彙,由於概率的乘法法則,那整個句子的概率也會接近於0,這是我們所不期望的。語言學家和概率學家們為了解決這一問題,也研究了不同的 數據光滑(smoothing)手段來對概率數據進行進一步加工。
那麼問題來了,我們上哪兒去統計詞語出現的概率呢?
最明顯的答案顯然是從語料庫中統計,但是這樣的工作量十分龐大,更別說統計二元模型、三元模型所使用的條件概率了。為了解決這一問題,某牆外的公司推出了一個實用工具,叫做 Ngram Viewer。網址是 https://books.google.com/ngrams ,請大家科學上網後取用。它長這個樣子:
上圖統計了 在 1800 到 2000 年之間,在其收錄的英語語料庫中 Frankenstein,Albert Einstein,Sherlock Holmes 三個詞出現的概率。
某公司還非常貼心地提供了中文語料庫的搜索功能,不過午餐君嘗試了一下感覺其收錄得不是很完善。
總結一下,n元模型在計算語言學領域研究的優勢有:
1. 提供了一種可以量化語言序列的模型,將 「不可描述」 的語言通過數據模型展現了出來。
2. 二元模型、三元模型 提供了相對較為簡便的概率計算方法。同時,實驗數據表明,這兩種模型的正確率也相當高。數據光滑等手段也使這一統計學模型愈加完善。
3. n元模型在語音識別、機器翻譯等領域都有廣泛的應用。通過概率論的手段,提升了語音識別和機器翻譯的準確率。
4. 從某種程度上模擬了人類思考的過程,模擬了人類推斷語言序列的過程。
可以說,語言學作為一門研究人類的自然科學發展到今天這個地步,越來越需要統計學和數學的知識來完善這一學科。作為一名數學系的學(咸)子(魚),午餐君也希望各位未來的語言學家們不要因為學了語言學就放棄微積分了哦。
說好的學語言不用學高數呢??
參考文獻:
黃昌寧(2002),中文信息處理的主流技術是什麼? 《計算機世界報》24,7-8。
※人生最大損失居然發生在六個月——下半輩子還怕什麼
※厲害了!音樂和語言,原來這麼像哪
※為什麼林丹的一句「做為一個男人」會惹惱網友?
※程工教授:詞庫應該是什麼樣的?
※毒舌電影評出的這部「年度前三」,背後有一個充滿爭議的假說
TAG:語言學午餐Ling-Lunch |
※計算語言學的尷尬
※語言學校的入學申請理由書怎麼寫?
※華裔語言學家王士元:語言是怎樣演化的?
※Go語言學習筆記(六)net
※語言學摘錄:布龍菲爾德的《語言論》、沃爾夫的《論語言、思維和現實》、洪堡特、以及索緒爾的《普通語言學教程》
※日本的語言學校只是學習語言嗎?
※去日本留學,語言學校真的必要嗎?
※日本語言學校的入學願書應該如何填寫?
※從語言建模到隱馬爾可夫模型:一文詳述計算語言學
※採訪完Jessica,我們重新認識了《降臨》里語言學家的世界
※把英語當成嬰語,語言學習so easy
※真的存在語言學習的關鍵期嗎?
※每日一問 | 去日本留學,有動畫相關的語言學校嗎?
※R語言學習-入門環境Rstudio
※日本語言學校的秘密,只有1%的學生知道!
※去日本留學,為什麼要讀語言學校?
※SSCI期刊《語言與文學》主編McIntyre在2017年第九屆國際語料庫語言學大會的主旨發言「語料庫文體學」
※C語言學習:C語言中指針函數與函數指針的詳解
※語言學的詩與趣