標籤:python 中文分詞 結巴模組
一、結巴中文分詞採用的演算法
- 基於Trie樹結構實現高效的詞圖掃描,產生句子中漢字所有可能成詞情況所構成的有向非循環圖(DAG)
- 採用了動態規劃尋找最大機率路徑, 找出基於詞頻的最大切分組合
- 對於未登入詞,採用了基於漢字成詞能力的HMM模型,使用了Viterbi演算法
二、結巴中文分詞支援的分詞模式
目前結巴分詞支援三種分詞模式:
- 精確模式,試圖將句子最精確地切開,適合文本分析;
- 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
- 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
<span style="font-size:14px;"><pre name="code" class="python"># -*- coding:utf-8 -*-import jiebatext = '我來到北京清華大學'default_mode =jieba.cut(text)full_mode = jieba.cut(text,cut_all=True)search_mode = jieba.cut_for_search(text)print "精確模式:","/".join(default_mode)print "全模式:","/".join(full_mode)print "搜尋引擎模式:","/".join(search_mode)精確模式: 我/來到/北京/清華大學全模式: 我/來到/北京/清華/清華大學/華大/大學搜尋引擎模式: 我/來到/北京/清華/華大/大學/清華大學</span>
上述代碼解釋:
- jieba.cut方法接受兩個輸入參數: 1) 第一個參數為需要分詞的字串 2)cut_all參數用來控制是否採用全模式,預設不採用。
- jieba.cut_for_search方法接受一個參數:需要分詞的字串,該方法適合用於搜尋引擎構建倒排索引的分詞,粒度比較細
- 注意:待分詞的字串可以是gbk字串、utf-8字串或者unicode
- jieba.cut以及jieba.cut_for_search返回的結構都是一個可迭代的generator,可以使用for迴圈來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(…))轉化為list
三、結巴中文分詞的其他功能
1、添加或管理自訂字典
結巴的所有字典內容存放在dict.txt,你可以不斷的完善dict.txt中的內容。
2、關鍵詞抽取
通過計算分詞後的關鍵詞的TF/IDF權重,來抽取重點關鍵詞。
3.詞性標註
對一句話進行切分後,對每個詞進行詞性標註,是名詞還是動詞
具體樣本:
<span style="font-size:14px;"># -*- coding:utf-8 -*-import jieba.analysetext = "結巴中文分詞模組是一個非常好的Python分片語件" tags = jieba.analyse.extract_tags(text,2) print "關鍵詞抽取:","/".join(tags)關鍵詞抽取: 分詞/Python</span>
<span style="font-size:14px;">#! /usr/bin/env python2.7#coding:utf-8import jiebaimport jieba.possegprint "Full Mode:","/".join(jieba.cut('始遊泳'))print "Full Mode:","/".join(jieba.cut('過郭美美'))s=["我勒個去","費打電話","響全世界","線情人"]for i in s: pos=[] seg=jieba.posseg.cut(i) for j in seg: print j.word,'/',j.flag,'#', pos.append([j.word,j.flag]) print #----------------------------------string="當我輸給青雉的時候就在想,在以後的航海中再遇到像他那麼強的對手的時候"seg=jieba.posseg.cut(string)pos=[]for i in seg: pos.append([i.word,i.flag])for i in pos: print i[0],'/',i[1],"#",</span>
輸出結果:
<span style="font-size:14px;">Full Mode:Building prefix dict from E:\Python27\lib\site-packages\jieba\dict.txt ...Loading model from cache c:\users\shifeng\appdata\local\temp\jieba.cacheLoading model cost 0.941999912262 seconds.Prefix dict has been built succesfully. 始/遊泳Full Mode: 過/郭美美我 / r # 勒 / v # 個 / q # 去 / v #費 / v # 打電話 / l #響 / zg # 全世界 / n #線 / n # 情人 / n #當 / p # 我 / r # 輸給 / v # 青雉 / n # 的 / uj # 時候 / n # 就 / d # 在 / p # 想 / v # , / x # 在 / p # 以後 / f # 的 / uj # 航海 / n # 中 / f </span>
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Python分詞模組推薦:jieba中文分詞