Python之jieba中文分詞庫

2021-09-13 22:16:24 字數 2516 閱讀 9913

jieba分詞是python中目前最受歡迎的中文分詞庫,他有許多特點,為了便於介紹直接引用官方介紹如下。

支援繁體分詞

支援自定義詞典

mit 授權協議

jieba分詞的原理是利用乙個中文詞庫,確定漢字之間的關聯概率,然後組成片語,形成分詞結果,除了分詞,使用者還可以新增自定義的片語。

我們先來看乙個最簡單的**示例:

jieba使用起來非常簡單,核心的功能函式方法就是使用cut()方法來做分詞處理。當然不僅僅是這乙個方法,還有諸多cut方法,比如lcut(),lcut返回的是乙個list,而剛才的cut返回的是乙個python生成器。cut和lcut的區別除了返回的結果不一樣以外,還有乙個重要的區別是cut的速度要略快於lcut可以詳見官方文件。

# encoding=utf-8

import jieba

seg_list = jieba.cut(

"我來到北京清華大學"

, cut_all=

true

)print

("全模式: "

+"/ "

.join(seg_list)

)# 全模式

# 輸出如下:

# 全模式: 我/ 來到/ 北京/ 清華/ 清華大學/ 華大/ 大學

seg_list = jieba.cut(

"我來到北京清華大學"

, cut_all=

false

)print

("預設(精確模式): "

+"/ "

.join(seg_list)

)# 精確模式

# 輸出如下:

# 預設(精確模式): 我/ 來到/ 北京/ 清華大學

seg_list = jieba.cut(

"他來到了網易杭研大廈"

)# 預設是精確模式

print

(", "

.join(seg_list)

)# 輸出如下:

# 他, 來到, 了, 網易, 杭研, 大廈

seg_list = jieba.cut_for_search(

"小明碩士畢業於中國科學院計算所,後在日本京都大學深造"

)# 搜尋引擎模式

print

(", "

.join(seg_list)

)# 輸出如下:

# 小明, 碩士, 畢業, 於, 中國, 科學, 學院, 科學院, 中國科學院, 計算, 計算所, ,, 後, 在, 日本, 京都, 大學, 日本京都大學, 深造

下面這個示例,就是我們使用jieba來分析《三國演義》**中,兩個字詞彙頻率最高的詞是什麼,可以從結果中發現,梟雄操和軍事孔明果然是三國**裡提及最多的風雲人物前二名。

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:

print

(words_list[:10

])# 輸出如下:

# [('曹操', 934),

# ('孔明', 831),

# ('將軍', 760),

# ('卻說', 647),

# ('玄德', 570),

# ('關公', 509),

# ('丞相', 488),

# ('二人', 463),

# ('不可', 435),

# ('荊州', 420)]

jieba雖然使用上十分簡單,只需要呼叫乙個核心函式就可以達到分詞的效果,但還有更多細膩的引數操作,比如:我們可以自己設定關鍵字,然後用基於tf-idf演算法的analyse.extract_tags()方法提取關鍵字,或者自定義自己的詞典庫等等。

更詳細的用法和更新動態詳見:

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庫提供了三種分詞模式,但實際上要達到分詞效果只要掌握乙個...