1.為什麼要分詞?

詞是最小的能夠獨立運用的語言單位,而很多孤立語和黏著語也稱亞系語言(如漢語、日語、越南語、藏語等)的文本不像西方屈折語(也稱拉丁語言系)的文本,詞與詞之間沒有任何空格之類的顯示標誌指示詞的邊界,因此中文自然語言處理的基礎就是中文分詞,沒有中文分詞就很難將中文語言量化。

2.什麼是中文分詞以及中文分詞有哪些?

中文分詞就是在一個中文序列的詞與詞之間加上空格或者其他邊界標誌(如「 」等)進行分隔,從而達到可以將語言量化的目的。

中文分詞的主要困難主要來自於如下三個方面:分詞規範歧義切分未登錄詞的識別

分詞規範問題可以理解為國人並沒有統一對漢語詞的認識,對漢語詞的認識的操作尺度很難把握,極易受到主觀因素的影響,從而無法提供一個公認的、具有權威性的詞表(例如普通說話人的語感與語言學家的標準就有較大的差異)。

歧義切分問題可以舉例如下:「結合成」分詞有兩種切分,結合成;結合成。「大學生」分詞有兩種:大學生;大學生。這種情況在漢語文本中非常普遍,並且處理這類問題往往也要複雜些。

未登錄詞的識別(生詞)可以有兩種解釋:一是指已有詞典中沒有收錄的詞;二是指已有的訓練語料中未曾出現過的詞。所以從某種意義上來說,生詞對分詞的影響是最容易處理的。

3.有哪些分詞演算法?

最早提出的中文分詞演算法是基於詞表的分詞演算法:正向最大匹配法、反向最大匹配法、雙向最大匹配演算法等。隨著統計方法的發展出現基於統計模型的分詞演算法n元語法模型的分詞演算法、HMM模型分詞演算法等,目前還發展出來基於序列標註模型的分詞演算法也稱區分式模型基於CRF的分詞演算法、基於深度學習的端到端的分詞演算法等。其他的分詞演算法還有基於規則的與統計方法相結合的分詞技術,為了獲得更佳的分詞效果,可引入動態規劃的方法。

正向最大匹配法:對於輸入的一段文本從左至右、以貪心的方式切分出當前位置上長度最大的詞。正向最大匹配法是基於詞表的分詞方法 ,其分詞原理是:單詞的顆粒度越大,所能表示的含義越確切。

主要分兩個步驟: 1、一般從一個字元串的開始位置,選擇一個最大長度的詞長的 片段,如果序列不足最大詞長,則選擇全部序列。 2、首先看該片段是否在詞典中,如果是,則算為一個分出來的詞 ,如果不是,則從右邊開始,減少一個字元,然後看短一點的這 個片段是否在詞典中,依次循環,逐到只剩下一個字。 3、 序列變為第2步驟截取分詞後,剩下的部分序列。

反向最大匹配法的基本原理與正向最大匹配法類似,只是分詞順序變為 從右至左。

雙向最大匹配法是將正向最大匹配法得到的分詞結果和逆向最大匹 配法的到的結果進行比較,從而決定正確的分詞方法。

1.如果正反向分詞結果詞數不同,則取分詞數量較少的那個。

2.如果分詞結果詞數相同 ? a.分詞結果相同,就說明沒有歧義,可返回任意一個。 ? b.分詞結果不同,返回其中單字較少的那個。

n元語法模型的分詞演算法:引入了馬爾科夫假設,一個詞的出現僅僅依賴於它前面出現的有限的一個或者幾個詞。

如果一個詞的出現僅依賴於它前面出現的一個詞,那麼我們就稱之為二元模型。即P(str) = P(W1W2…Wn) =P(W1)P(W2|W1)…P(Wn|W1W2…Wn-1) ≈P(W1)P(W2|W1)…P(Wn|Wn-1) ,使條件概率P(str)最大的切分路徑就是最終最佳選擇。

如果一個詞的出現僅依賴於它前面出現的兩個詞,那麼我們就稱之為三元模型

在實際操作中用的最多的就是二元模型和三元模型,而且效果很不錯。高於四元的用的很少,因為訓練它需要更龐大的語料,而且數據稀疏嚴重,時間複雜度高,精度卻提高的不多。

剩餘演算法後續再更新補充。。。。。。


推薦閱讀:
相关文章