1. 程式人生 > 其它 >自然語言處理 - 二元語法與中文分詞

自然語言處理 - 二元語法與中文分詞

技術標籤:自然語言處理人工智慧機器學習

二元語法與中文分詞

之前的一篇文章裡(自然語言處理 - 分詞初窺)中我們介紹並實現了基於詞典的最大匹配分詞方法。這種方法簡單直觀,且詞典擴充很方便。但詞典分詞難以消除歧義,給定兩種分詞結果“商品 和服 務”以及“商品 和 服務”,詞典分詞不知道哪種更加合理。

但對於人類來說,我們平時接觸的都是第二種分詞方案,所以我們知道第二種更加合理,因此可以判定第二種是正確地選擇。這就是利用了統計自然語言處理。統計自然語言處理的核心話題之一,就是如何利用統計手法對語言建模,

語言模型

模型指的是對事物的數學抽象,那麼語言模型指的就是對語言現象的數學抽象。形式化上講,給定一個句子

,語言模型就是計算句子的出現概率 的模型,而統計的物件就是人工標註而成的語料庫。

舉個例子,對於下面的小型語料庫:

商品 和 服務
商品 和服 物美價廉
服務 和 貨幣

每個句子出現的概率都是 1/3,這就是語言模型。然而 的計算非常難:句子數量無窮無盡,無法列舉。即便是大型語料庫,也只能“列舉”有限的句子。實際遇到的句子大部分都在語料庫之外,意味著它們的概率都被當作 0,這種現象被稱為資料稀疏

考慮到很多句子複用相同的詞語,如果把句子看成詞語列表 ,其中,每一個 都是一個詞語,那麼語言模型可以定義為:

其中 (Begin Of Sentence) ,(End Of Sentence) 來標記句子首尾的兩個特殊"單詞"。

然而隨著句子長度的增大,語言模型會遇到如下兩個問題:

  1. 資料稀疏:長度較大的句子出現頻率較低,導致聯合概率為 0
  2. 計算代價大:隨著句子中詞語的增多,需要儲存的單詞間的聯合概率值也越多

馬爾可夫過程

馬爾可夫過程(Markov process)是一類隨機過程。它的原始模型馬爾可夫鏈,由俄國數學家A.A.馬爾可夫於1907年提出。該過程具有如下特性:在已知目前狀態的條件下,它未來的演變不依賴於它以往的演變。例如森林中動物頭數的變化構成——馬爾可夫過程。在現實世界中,有很多過程都是馬爾可夫過程,如液體中微粒所作的布朗運動、傳染病受感染的人數、車站的候車人數等,都可視為馬爾可夫過程。

每個狀態的轉移只依賴於之前的 n 個狀態,這個過程被稱為1個 n 階的模型,其中 n 是影響轉移狀態的數目。最簡單的馬爾可夫過程就是一階過程,每一個狀態的轉移只依賴於其之前的那一個狀態,這個也叫作馬爾可夫性質

。用數學表示式即為:

n 元語言模型

這個"模型的每個狀態都只依賴於之前的狀態"的假設即稱為馬爾科夫假設。這個假設可用來簡化語言模型,我們可以假設每個詞語的出現概率僅依賴於前一個 詞語。此時的語言模型稱為二元語法模型,對應地,假設每個詞語出現的概率僅信賴於前 n 個詞語的模型即n 元語法模型

語言模型給出瞭如何計算句子出現概率的方法(函式),具體的概率值取決於實際使用到的語料庫。一些常用的語料庫有:

  1. 《人民日報》語料庫 PKU
  2. 微軟亞洲研究院語料庫 MSR
  3. 香港城市大學 CITYU(繁體)
  4. 臺灣中央研究院 AS(繁體)
語料庫字元數詞語種數總詞頻平均詞長
PKU183萬6萬111萬1.6
MSR405萬9萬237萬1.7
AS837萬14萬545萬1.5
CITYU240萬7萬146萬1.7

MSR 在標註一致性、切分粒度上都要優於 PKU 且詞頻數更多,一般採用 MSR 作為分詞語料的首選。
PKU 和 MSRA 的資料集下載地址:http://sighan.cs.uchicago.edu/bakeoff2005/

參考