分詞的原理和認識以及工具的使用
阿新 • • 發佈:2018-11-09
概念:中文分詞(Chinese Word Segmentation) 指的是將一個漢字序列切分成一個個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。
字元匹配:
-
正向最大匹配
-
逆向最大匹配
-
最少切分(使每句話中切分的詞最少)
-
雙向最大匹配
逆向匹配的切分精度略高於正向匹配,遇見歧義的現象也比較少。
基本原理是,將字串與字典中的內容進行匹配,找到匹配的長度最大的詞語,就將它分割成一個詞語。由於中文比較複雜,各種語境下的分詞可能有些不同。所以一般在實現過程中,需要對掃描方式進行進一步的優化。
理解法:
讓計算機模擬人類的思考方式去分析文章的內容。
統計法:
通過對大量文章內容進行統計,然後將相鄰排列重複次數超過一定範圍的字的組合劃分為一個詞,常常出現“新詞”,以及耗時較大,誤差也比較大。
技術難點:
歧義詞:
交集型歧義:可以對詞有多種劃分,需要人的知識和經驗協助劃分的內容
組合型歧義:在不同句子中,有的為詞而在另一個語境中卻不為一個詞。
新詞:在未被分詞詞典收錄而又確實是一個詞的詞語,人名、機構名、商標名等詞。
結巴分詞的安裝和使用
功能:
- 支援三種分詞模式:
- 精確模式,試圖將句子最精確地切開,適合文字分析;
- 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
- 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
- 精確模式,試圖將句子最精確地切開,適合文字分析;
- 支援繁體分詞
- 支援自定義詞典
- MIT 授權協議
安裝:
pip3 install jieba
使用:
引用:
import jieba
方法:
待分詞字串編碼集:unicode UTF-8 GBK(易產生錯誤,被解碼成UTF-8)
預設為精確模式
Jieba.cut(被分詞字串,是否採用全模式,是否使用HMM模型)
返回可迭代的生成器
Jieba.cut_for_search(需要分詞的字串,是否使用HMM模型),
返回可迭代的生成器,該方法粒度比較細
Jieba.lcut返回陣列
Jieba.lcut_for_search返回陣列
Jieba.Tokenizer(dictionary = DEFAULT_DICT)
新建自定義分詞器,用於不同的字典【jieba.dt為預設分詞器】
HMM模型
非常優秀的大佬的一篇文章:https://www.cnblogs.com/skyme/p/4651331.html