該文的project請看支援三種分詞模式:
精確模式,試圖將句子最精確地切開,適合文字分析;
全模式,把句子中所有的可以成詞的詞語都掃瞄出來, 速度非常快,但是不能解決歧義;
搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
支援繁體分詞
支援自定義詞典
mit 授權協議
**對 python 2/3 均相容
全自動安裝:easy_install jieba 或者 pip install jieba / pip3 install jieba
手動安裝:將 jieba 目錄放置於當前目錄或者 site-packages 目錄
通過 import jieba 來引用
基於字首詞典實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 (dag)
採用了動態規劃查詢最大概率路徑, 找出基於詞頻的最大切分組合
對於未登入詞,採用了基於漢字成詞能力的 hmm 模型,使用了 viterbi 演算法
import re
import jieba
import jieba.analyse as analyse
#cut函式,接受三個引數:需要採用的字串,是否全模式,是否使用hmm模型
#全模式
s="小明碩士畢業於中國科學院計算所,後在日本京都大學深造"
a=jieba.cut(s,cut_all=
true
,hmm=
false);
print
("全模式: "
+"/"
.join(a)
)#搜尋引擎模式
a=jieba.cut(s,cut_all=
false
,hmm=
true
)print
("搜尋引擎模式: "
+"/"
.join(a)
)#精確模式
a=jieba.cut(s,cut_all=
false
,hmm=
false
)print
("精確模式: "
+"/"
.join(a)
)#cut_for_search()函式,僅接受兩個引數,第乙個為待分詞的句子,第二個為是否實驗hmm模式
s="小明碩士畢業於中國科學院計算所,後在日本京都大學深造"
a=jieba.cut_for_search(s,hmm=
true
)print
("hmm模式:"
+"/"
.join(a)
)a=jieba.cut_for_search(s,hmm=
false
)print
("普通模式:"
+"/"
.join(a)
)def
jiebacleartext
(text)
: mywordlist =
stopwords=
seg_list = jieba.cut(text)
liststr=
"/ "
.join(seg_list)
with
open
(stopwords_path,
'r', encoding=
'utf-8'
)as f_stop:
#讀入停用詞表
for line in f_stop:
iflen
(line)
>0:
))for myword in liststr.split(
'/')
:#去停用詞
if(myword.strip(
)not
in stopwords)
:return
''.join(mywordlist)
stopwords_path=
'stopwords.txt'
f=open
("test2.txt"
,"rb"
)text = f.read(
)f.close();
text=text.decode(
'utf-8'
)text = re.sub(
'曰',
'', text)
text1 = jiebacleartext(text)
f=open
('result1.txt'
,"w")i=
1for key in analyse.extract_tags(text1,
50, withweight=
true):
#輸出結果
key=
str(key)
f.write(
"no."
+str
(i)+
": "
+key+
'\n'
) i=i+
1f.close(
)###對msr資料集進行分詞
text=
f=open
("msr_test.txt"
,'r'
, encoding=
'gbk'
)t=f.readline(
)while t:
t=f.readline(
)f.close();
f=open
('result2.txt'
,"w");
for word in text:
#輸出結果
word=jieba.cut(word)
f.write(
"/".join(word)
)f.close(
)
jieba分詞使用記錄
jieba分詞核心分詞由兩部分組成。對於在詞典裡的字詞建立字典樹 trie 在搜尋的時候必須從根節點搜尋到葉子節點才算乙個詞 對於不在字典裡的字詞使用hmm模型根據最大可能性進行分詞 每次執行jieba分詞時程式會先檢查是否存在jieba.cache這個檔案。如果存在直接使用這個檔案中的資訊,否則重...
jieba 利用jieba分詞
目錄 三種分詞模式 新增自定義詞典進行分詞 jieba提供了三種分詞模式,分別是全模式,精確模式和搜尋引擎模式。全模式下會將所有可能的詞語都進行分詞,精確模式下會盡可能的將句子精確切開,搜尋引擎模式實在精確模式的基礎上,對長詞再進行劃分,提高分詞的召回率。使用cut和cut for search即可...
jieba分詞原理
關於jieba分詞的原理,在平時做文字方面的演算法時沒有仔細研究過,昨晚在網上看了一篇部落格,寫的很全面很詳細,其中有些深入的部分還並沒有完全看懂。jieba分詞系統介紹 涉及演算法 基於字首詞典實現詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用動態規劃查詢最大概率路徑,找...