nlp領域基本技術之一,分詞(word segmentation)
功能是將一句話用最合理的方式劃分成詞集合,符合語言特點和語義連貫。
基於字典詞庫匹配的分詞方法(機械分詞法)
應用詞典匹配、漢語詞法或其它漢語語言知識進行分詞,如:最大匹配法、最小分詞方法等。這類方法簡單高效
,但漢語語言複雜豐富,詞典完備性、規則一致性等問題使其難以適應大規模文字的分詞處理。
mm 最大匹配演算法
假定分詞詞典中的最長詞有
i個漢字字元,則用被處理文件的當前字串中的前
i個字作為匹配字段,查詢字典。若字典中存在這樣的乙個
i字詞,則匹配成功,匹配欄位被作為乙個詞切分出來。如果詞典中找不到這樣的乙個
i字詞,則匹配失敗,將匹配欄位中的最後乙個字去掉,對剩下的字串重新進行匹配處理……
如此進行下去,直到匹配成功,即切分出乙個詞或剩餘字串的長度為零為止。這樣就完成了一輪匹配,然後取下乙個
i字字串進行匹配處理,直到文件被掃瞄完為止。
基於此的演算法:mmseg、ikanalyzer
rmm 逆向最大匹配演算法
rmm法的基本原理與mm法相同
,不同的是分詞切分的方向與
mm法相反,而且使用的分詞辭典也不同。逆向最大匹配法從被處理文件的末端開始匹配掃瞄,每次取最末端的
2i個字元(
i字字串)作為匹配字段,若匹配失敗,則去掉匹配欄位最前面的乙個字,繼續匹配。相應地,它使用的分詞詞典是逆序詞典,其中的每個詞條都將按逆序方式存放。在實際處理時,先將文件進行倒排處理,生成逆序文件。然後,根據逆序詞典,對逆序文件用正向最大匹配法處理即可。
最少切分法
使每一句中切出的詞數最小。
雙向匹配法
將正向最大匹配法與逆向最大匹配法組合。先根據標點對文件進行粗切分,把文件分解成若干個句子,然後再對這些句子用正向最大匹配法和逆向最大匹配法進行掃瞄切分。如果兩種分詞方法得到的匹配結果相同,則認為分詞正確,否則,按最小集處理。
基於詞頻統計的分詞方法
基於字和詞的統計資訊,如把相鄰字間的資訊、詞頻及相應的共現資訊等應用於分詞,由於這些資訊是通過統計真實語料取得的,因而基於統計的分詞方法具有較好的實用性。
hmm 隱馬爾可夫模型
利用隱馬爾可夫模型進行中文分詞
crf 條件隨機場
利用條件隨機場模型進行中文分詞
n-gram n元文法模型認為乙個詞的出現僅依賴於它前面有限的乙個或幾個詞。如果僅依賴於它前面出現的乙個詞,就稱之為
bigram
。即 p(t)=p(w1w2w3···wn)=p(w1)p(w2|w1)p(w3|w1w2)···p(wn|w1w2···wn-1)
≈p(w1)p(w2|w1)p(w3|w2)···p(wn|wn-1)
。 如果乙個詞的出現僅依賴於它前面出現的兩個詞,那麼就稱之為
trigram
。設w1,w2,w3,...,wn
是長度為
n的字串,規定任意詞
wi只與它的前兩個相關,得到三元概率模型。
在實踐中用的最多的就是
bigram
和trigram
了,而且效果很不錯。高於四元的用的很少,因為訓練它需要更龐大的語料,而且資料稀疏嚴重,時間複雜度高,精度卻提高的不多。
以此類推,
n元模型就是假設當前詞的出現概率隻同它前面的
n-1個詞有關。
分詞基本演算法
什麼是中文分詞 眾所周知,英文是以詞為單位的,詞和詞之間是靠空格隔開,而中文是以字為單位,句子中所有的字連起來才能描述乙個意思。例如,英文句子i am a student,用中文則為 我是乙個學生 計算機可以很簡單通過空格知道student是乙個單詞,但是不能很容易明白 學 生 兩個字合起來才表示乙...
盤古分詞 多元分詞演算法
中文分詞按照分詞粒度來分,分成 一元分詞,二元分詞,多元分詞和精確分詞等型別。一元分詞就是最簡單的分詞,將所有的中文字元按照單字形式輸出。二元分詞按雙字形式輸出。多元分詞則是將一句話中可能的單詞組合按照一定規則輸出,允許輸出的詞有重疊。精確分詞則是將一句話中最準確的單詞組合輸出,不允許輸出的詞有重疊...
BP演算法調研
bp演算法,即反向傳播方法,是用來訓練前向網路的一種普遍演算法。課本 artifitial intelligence a new synthesis,nils j.nilsson 提供了演算法實現方式,每乙個輸入樣本,利用遞迴等式,根據期望值與實際輸出值的誤差,從後向前逐步調整權重,從而實現網路的訓...