1.1 分詞的概念(分詞的正向最大、逆向最大、雙向最大匹配法);
漢語分詞難點:分詞規範、歧義切分、未登入詞識別。
分詞規範:詞這個概念一直是漢語語言學界糾纏不清又揮之不去的問題,也就是說,對於詞的抽象定義(詞是什麼)和詞的具體界定(什麼是詞)迄今拿不出乙個公認的、具有權威性的詞表來。
歧義切分:切分歧義是漢語分詞研究中乙個大問題,因為歧義欄位在漢語文字中大量存在。處理這類問題可能需要進行複雜的上下文語義分析,甚至韻律分析(語氣、重音、停頓等)。
未登入詞識別:未登入詞又叫生詞,一般有二種解釋:第一種指的是已有的詞表中沒有收錄的詞;第二種指的是已有的訓練語料中未曾出現過的詞。在第二種解釋下,又稱之為集外詞(out of vocabulary,oov)。
中文分詞基本方法:
三大類:基於詞典的方法、基於理解的分詞方法和基於統計的分詞方法。
基於詞典的方法(又稱機械分詞方法):
1.正向最大匹配分詞
正向的就是從前往後比較,要設定乙個最長詞的長度maxlength,就是最長能識別這麼長的詞,舉個例子,比如有個詞叫「五仁叉燒」,而設定的最長詞長度為3,那麼就不會分出「五仁叉燒」這個詞出來。所呼叫「最大」意思就是說,從長的往短的匹配,一旦能匹配上長的,就終止了,就不會去匹配短的,比如如果「五仁叉燒」能匹配上,就不會再去匹配「五仁」,「叉燒」。
下面以乙個例子來說明:要進行分詞的字串:「研究生命的起源」
研究
研究生生命命的
起源
假定最大匹配字數設定為5
正向最大匹配過程:
研究生命的
研究生命
研究生#第乙個詞匹配成功
之後繼續匹配第二個詞:
命的起源
命的起命的
命#第二個詞匹配成功,乙個單字
然後匹配第三個詞:
的起源的起
的#第三個詞匹配成功
第四個詞:
起源 #第四個詞匹配成功
那麼正向最大匹配的結果就是研究生 命 的 起源
現在來看看逆向最大匹配的過程:
生命的起源
命的起源
的起源起源 #第乙個詞匹配成功
研究生命的
究生命的
生命的命的
的 #第二個詞匹配成功
研究生命
究生命生命#第三個詞匹配成功
研究#第四個詞匹配成功
所以逆向最大匹配後的結果為研究 生命 的 起源
兩種分詞過程總結:
【正向匹配:從左到右,逐步去掉右部(後部)的字進行新一輪匹配,逆向匹配:從右到左,逐步去掉左部(前部)的字進行新一輪匹配】
因為中文比較複雜以及中文的特殊性,逆向最大匹配大多時候往往會比正向要準確。
雙向最大匹配法(bi-directction matching method,bm)
雙向最大匹配法是將正向最大匹配法得到的分詞結果和逆向最大匹配法的到的結果進行比較,從而決定正確的分詞方法。據sunm.s. 和 benjamin k.t.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正確,只有大概9.0%的句子兩種切分方法得到的結果不一樣,但其中必有乙個是正確的(歧義檢測成功),只有不到1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分雖重合卻是錯的,或者正向最大匹配法和逆向最大匹配法切分不同但兩個都不對(歧義檢測失敗)。這正是雙向最大匹配法在實用中文資訊處理系統中得以廣泛使用的原因所在。
具體解釋:
結合正向最大匹配法
和反向最大匹配法
的優點,按照一定的規則選擇其中表現最優秀的結果作為雙向最大匹配法
的結果。
從正向最大匹配法
和反向最大匹配法
的結果中選擇最滿足中文分詞原則的乙個分詞結果。
分詞的結果顆粒度(單個詞所包含的字元長度)越大越好。
同樣是北京大學
可以分成北京
/大學
或者北京大學
,則後者更優,後者包含的資訊更加特定和明確。
非詞典詞的出現說明出現了 oov (out of vocabulary) 問題,字典足夠大的情況下出現 oov, 說明分詞結果不佳。類似的,分詞結果大量出現單個字,也是暗示分詞效果不佳。
比如技術和服務
可以被分成技術
/和
/服務
或者技術
/和服
/務
,後者中的務
就是乙個 oov,因為中文中務
不能單獨成詞
同樣是研究生命起源
可以被分成研究生
/命
/起源
和研究
/生命
/起源
,後者 詞語長度的變化率 最小,因此是更好的分詞結果。
通過分別實現正向最大匹配法
和反向最大匹配法
按照上述原則實現乙個判別器,判別最優結果,返回即可。
最少切分法:
使每一句中切出的詞數最小。
基於理解的分詞方法:
基於統計的分詞方法:
基於深度學習的分詞方法:
中文分詞工具推薦:
1.2 詞、字元頻率統計;(可以使用python中的collections.counter模組,也可以自己尋找其他好用的庫)
可以參考:
2.1 語言模型中unigram、bigram、trigram的概念;
參考本人以往博文:
2.2 unigram、bigram頻率統計;(可以使用python中的collections.counter模組,也可以自己尋找其他好用的庫)
參考鏈結學習:
要求採用詞袋模型且是詞級別的矩陣化
步驟有:
3.1 分詞(可採用結巴分詞來進行分詞操作,其他庫也可以);
3.2 去停用詞;構造詞表。
3.3 每篇文件的向量化。
可以參考鏈結學習:
力薦)
nlp實踐task2 特徵提取
1.1 分詞的概念 分詞的正向最大 逆向最大 雙向最大匹配法 所謂詞典正向最大匹配就是將一段字串進行分隔,其中分隔 的長度有限制,然後將分隔的子字串與字典中的詞進行匹配,如果匹配成功則進行下一輪匹配,直到所有字串處理完畢,否則將子字串從末尾去除乙個字,再進行匹配,如此反覆。逆向匹配與此類似。正向最大...
NLP基礎 Task2 特徵提取
基本文字處理技能 1.1 分詞的概念 分詞的正向最大 逆向最大 雙向最大匹配法 1.2 詞 字元頻率統計 可以使用python中的collections.counter模組,也可以自己尋找其他好用的庫 概念2.1 語言模型中unigram bigram trigram的概念 2.2 unigram ...
NLP實踐系列 2 特徵提取
自然語言處理中,特徵提取是十分重要的一環,而提取特徵,主要是提取單詞的特徵,比如讀音,和語義。這就涉及到了分詞的問題。分詞指的是將乙個單詞序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。現有的分詞方法可分為三大類 基於字串匹配的分詞方法 基於理解的分詞方法和基...