jieba分詞是python中目前最受歡迎的中文分詞庫,他有許多特點,為了便於介紹直接引用官方介紹如下。
支援繁體分詞
支援自定義詞典
mit 授權協議
jieba分詞的原理是利用乙個中文詞庫,確定漢字之間的關聯概率,然後組成片語,形成分詞結果,除了分詞,使用者還可以新增自定義的片語。
我們先來看乙個最簡單的**示例:
jieba使用起來非常簡單,核心的功能函式方法就是使用cut()方法來做分詞處理。當然不僅僅是這乙個方法,還有諸多cut方法,比如lcut(),lcut返回的是乙個list,而剛才的cut返回的是乙個python生成器。cut和lcut的區別除了返回的結果不一樣以外,還有乙個重要的區別是cut的速度要略快於lcut可以詳見官方文件。
下面這個示例,就是我們使用jieba來分析《三國演義》**中,兩個字詞彙頻率最高的詞是什麼,可以從結果中發現,梟雄操和軍事孔明果然是三國**裡提及最多的風雲人物前二名。# encoding=utf-8
import jieba
seg_list = jieba.cut(
"我來到北京清華大學"
, cut_all=
true
("全模式: "
+"/ "
.join(seg_list)
)# 全模式
# 輸出如下:
# 全模式: 我/ 來到/ 北京/ 清華/ 清華大學/ 華大/ 大學
seg_list = jieba.cut(
"我來到北京清華大學"
, cut_all=
false
("預設(精確模式): "
+"/ "
.join(seg_list)
)# 精確模式
# 輸出如下:
# 預設(精確模式): 我/ 來到/ 北京/ 清華大學
seg_list = jieba.cut(
"他來到了網易杭研大廈"
)# 預設是精確模式
(", "
.join(seg_list)
)# 輸出如下:
# 他, 來到, 了, 網易, 杭研, 大廈
seg_list = jieba.cut_for_search(
"小明碩士畢業於中國科學院計算所,後在日本京都大學深造"
)# 搜尋引擎模式
(", "
.join(seg_list)
)# 輸出如下:
# 小明, 碩士, 畢業, 於, 中國, 科學, 學院, 科學院, 中國科學院, 計算, 計算所, ,, 後, 在, 日本, 京都, 大學, 日本京都大學, 深造
jieba雖然使用上十分簡單,只需要呼叫乙個核心函式就可以達到分詞的效果,但還有更多細膩的引數操作,比如:我們可以自己設定關鍵字,然後用基於tf-idf演算法的analyse.extract_tags()方法提取關鍵字,或者自定義自己的詞典庫等等。import jieba
from pathlib import path
from collections import counter
text_path = path(path.cwd()/
'三國演義.txt'
)with text_path.
open
(encoding =
'gb18030'
)as f:
text_content = f.read(
)# 新增自己的詞庫分詞,比如新增'軍師孔明'到jieba詞庫後,當你處理的文字中含有軍師孔明這個詞,
# 就會直接將'軍師孔明'當作乙個詞,而不會得到'軍師'或'孔明'這樣的詞。
jieba.add_word(
'軍師孔明'
)# 與cut方法區別的是返回的是list型別
words = jieba.lcut(text_content)
# 用counter方法計算單詞頻率數
count = counter(words)
most_count = count.most_common(
)words_list =
for i in most_count:
iflen
(i[0])
>=
2and
len(i[0]
)<=4:
(words_list[:10
])# 輸出如下:
# [('曹操', 934),
# ('孔明', 831),
# ('將軍', 760),
# ('卻說', 647),
# ('玄德', 570),
# ('關公', 509),
# ('丞相', 488),
# ('二人', 463),
# ('不可', 435),
# ('荊州', 420)]
更詳細的用法和更新動態詳見:
Python分詞模組推薦 jieba中文分詞
一 結巴中文分詞採用的演算法 二 結巴中文分詞支援的分詞模式 目前結巴分詞支援三種分詞模式 精確模式,試圖將句子最精確地切開,適合文字分析 全模式,把句子中所有的可以成詞的詞語都掃瞄出來,速度非常快,但是不能解決歧義 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞...
python 中文jieba分詞
import os import jieba from collections import counter def words txt print jieba.cut txt lista jieba.cut txt 返回的結構都是乙個可迭代的 generator,可以使用 for 迴圈來獲得分詞後...
Python中文分詞庫 jieba
1 介紹 jieba是優秀的中文分詞第三方庫。由於中文文字之間每個漢字都是連續書寫的,我們需要通過特定的手段來獲得其中的每個單詞,這種手段就叫分詞。而jieba是python計算生態中非常優秀的中文分詞第三方庫,需要通過安裝來使用它。jieba庫提供了三種分詞模式,但實際上要達到分詞效果只要掌握乙個...