文本分析入門(二)

還是先上新概念。

分詞

我們在做文本挖掘的時候,要對文本做的預處理首先就是分詞。對於英文來說,因此單詞之間天然有空格隔開,因此可以按照空格分詞(但也有需要把多個單詞做成一個分詞的時候)。而對於中文來說,由於沒有空格,那麼分詞就變成了一個需要專門去處理去解決的問題。

我們現在的分詞都是基於統計來分詞。對於一個良好的分詞系統來說應該由詞典和統計兩套系統組成。統計,是爲了給詞典不斷可持續地更新,不斷加入新詞。在分詞的過程中,首先,一個良好的詞典很重要;其次,算法要跟着需求,跟着應用場景走,針對不同的需求我們應該選擇不同的算法。

下面介紹幾個簡單的分詞方法:

正向最大匹配法
逆向最大匹配法
雙向最大匹配法
正向最大匹配法:

從前往後去詞,每次減少一個字,直到分詞系統的詞典命中分詞或只剩下一個字。

首先,機械匹配分詞法分爲增字匹配法和減字匹配法。增字法一般與最小匹配相結合,即從一個字開始增加,而減字法常與最大匹配相結合。(這應該不難理解)因此正向最大匹配法採用減字匹配法較爲常見

下面舉例來源網絡:
第1次:“我們在野生動物”,掃描7字詞典,無
第2次:“我們在野生動”,掃描6字詞典,無
。。。。
第6次:“我們”,掃描2字詞典,有
掃描中止,輸出第1個詞爲“我們”,去除第1個詞後開始第2輪掃描,即:
第2輪掃描:
第1次:“在野生動物園玩”,掃描7字詞典,無
第2次:“在野生動物園”,掃描6字詞典,無
。。。。
第6次:“在野”,掃描2字詞典,有
掃描中止,輸出第2個詞爲“在野”,去除第2個詞後開始第3輪掃描,即:
第3輪掃描:
第1次:“生動物園玩”,掃描5字詞典,無
第2次:“生動物園”,掃描4字詞典,無
第3次:“生動物”,掃描3字詞典,無
第4次:“生動”,掃描2字詞典,有
掃描中止,輸出第3個詞爲“生動”,第4輪掃描,即:
第4輪掃描:
第1次:“物園玩”,掃描3字詞典,無
第2次:“物園”,掃描2字詞典,無
第3次:“物”,掃描1字詞典,無
掃描中止,輸出第4個詞爲“物”,非字典詞數加1,開始第5輪掃描,即:
第5輪掃描:
第1次:“園玩”,掃描2字詞典,無
第2次:“園”,掃描1字詞典,有
掃描中止,輸出第5個詞爲“園”,單字字典詞數加1,開始第6輪掃描,即:
第6輪掃描:
第1次:“玩”,掃描1字字典詞,有
掃描中止,輸出第6個詞爲“玩”,單字字典詞數加1,整體掃描結束。
正向最大匹配法,最終切分結果爲:“我們/在野/生動/物/園/玩”,其中,單字字典詞爲2,非詞典詞爲1。
由結果可以看出,其工作效率較差,分詞準確度不高。

2.逆向最大匹配法:

與正向相反,從後往前取詞。

第1輪掃描:“在野生動物園玩”
第1次:“在野生動物園玩”,掃描7字詞典,無
第2次:“野生動物園玩”,掃描6字詞典,無
。。。。
第7次:“玩”,掃描1字詞典,有
掃描中止,輸出“玩”,單字字典詞加1,開始第2輪掃描
第2輪掃描:“們在野生動物園”
第1次:“們在野生動物園”,掃描7字詞典,無
第2次:“在野生動物園”,掃描6字詞典,無
第3次:“野生動物園”,掃描5字詞典,有
掃描中止,輸出“野生動物園”,開始第3輪掃描
第3輪掃描:“我們在”
第1次:“我們在”,掃描3字詞典,無
第2次:“們在”,掃描2字詞典,無
第3次:“在”,掃描1字詞典,有
掃描中止,輸出“在”,單字字典詞加1,開始第4輪掃描
第4輪掃描:“我們”
第1次:“我們”,掃描2字詞典,有
掃描中止,輸出“我們”,整體掃描結束。
逆向最大匹配法,最終切分結果爲:“我們/在/野生動物園/玩”,其中,單字字典詞爲2,非詞典詞爲0。
由結果推斷,逆向最大匹配分詞相較於正向而言,其正確率要高。

據統計結果表明,單純使用正向最大匹配法的錯誤率爲1/169,單純使用逆向最大匹配法的錯誤率爲1/245,顯然逆向最大匹配分詞法較正向最大匹配分詞法在切分準確率上有了較大提高,這一結果與漢語中心語偏後有一定的關係。

3.雙向最大匹配法

正向最大匹配法和逆向最大匹配法,都有其侷限性(如:長春藥店,逆向切分爲“長/春藥店”),因此有人又提出了雙向最大匹配法,雙向最大匹配法。即,兩種算法都切一遍,然後根據大顆粒度詞越多越好,非詞典詞和單字詞越少越好的原則,選取其中一種分詞結果輸出。
如:“我們在野生動物園玩”
正向最大匹配法,最終切分結果爲:“我們/在野/生動/物/園/玩”,其中,兩字詞3個,單字字典詞爲2,非詞典詞爲1。
逆向最大匹配法,最終切分結果爲:“我們/在/野生動物園/玩”,其中,五字詞1個,兩字詞1個,單字字典詞爲2,非詞典詞爲0。
非字典詞:正向(1)>逆向(0)(越少越好)
單字字典詞:正向(2)=逆向(2)(越少越好)
總詞數:正向(6)>逆向(4)(越少越好)
因此最終輸出爲逆向結果。
總結一下就是,雙向最大匹配法,側重於分詞過程中的檢查和糾錯的功能,其基本原理是對切分字符串採用正逆兩向最大匹配,進行初步的切分,然後比較兩個結果,如果結果一致,則ok。如果不一致,則判定爲存在切分的歧義,需要進一步操作來消除歧義。在上面的例子中我們可以看到,根據大顆粒度詞越多越好(例子裏爲“野生動物園”),非詞典詞和單字詞越少越好的原則,我們可以在正逆兩向中選擇一個作爲結果。因此雙向最大匹配也就是將前兩種分詞法都進行一遍然後進行一個選優。

暫時先介紹這三種簡單的分詞方法。

最後介紹分詞的幾個定義:

unigram 一元分詞,把句子分成一個一個的漢字
bigram 二元分詞,把句子從頭到尾每兩個字組成一個詞語
trigram 三元分詞,把句子從頭到尾每三個字組成一個詞語.

在將文本進行預處理之後,我們要對文本轉化爲特徵。這裏首先介紹一種文本特徵提取統計算法:TF-IDF。

以下內容搬自我的博客:

TF-IDF是一種文本特徵提取統計算法。

首先依舊提出幾個定義。

詞頻(TF)即一個詞語在文本中出現的頻率。

文本總數(D):所蒐集的所有文本數。

含關鍵詞的文本數(Dw):含有某個詞(關鍵字)的文本數目。

由以上三個定義,可得TF-IDF公式:

TF-IDF(w)=TF(w)*IDF(w)

TF(w)=w在所有文件中出現的次數/該文件的總詞數。

IDF(w)=log(D/(Dw+1))//+1避免分母爲0

IDF的作用:

降低具有普遍性詞語的權重(比如一些語氣詞),提升具有個性化的詞的頻率。

總結一下就是:

一個詞的重要性和它在當前文檔中出現的次數成正比,和所有文檔中出現的次數成反比。

對於中文的文本進行處理的步驟:

1.分詞處理

2.生成向量

3.根據向量去做主題聚類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章