python3 jieba分詞


一.jieba庫用於分詞,https://github.com/fxsjy/jieba

 

二.分詞:分詞精細:全局(文本分析)<精確(快速成詞)<搜素(搜素引擎分詞)

 1 #分詞
 2 str=r'今天我們中出了一個叛徒,不想領導領導的領導不是好領導'
 3 a=jieba.cut(str,cut_all=True,HMM=False)
 4 #分詞(字符串,是否采用全局模式(默認False精確模式),是否使用HMM模式(默認True))
 5 print(a)#返回可迭代的生成器
 6 print(','.join(a))
 7 
 8 b=jieba.lcut(str)#lcut_for_search直接返回列表
 9 print(b)
10 
11 print(jieba.lcut_for_search(str, HMM=True))#搜索模式
12 ---------------------------------------------------------
13 Building prefix dict from the default dictionary ...
14 <generator object Tokenizer.cut at 0x0368E8A0>
15 Loading model from cache C:\Users\11373\AppData\Local\Temp\jieba.cache
16 今天,我們,中出,了,一個,叛徒,,,不想,領導,領導,的,領導,不是,好,領導
17 Loading model cost 0.784 seconds.
18 ['今天', '我們', '中出', '', '一個', '叛徒', '', '不想', '領導', '領導', '', '領導', '不是', '', '領導']
19 Prefix dict has been built succesfully.
20 ['今天', '我們', '中出', '', '一個', '叛徒', '', '不想', '領導', '領導', '', '領導', '不是', '', '領導']
分詞

 

三.導入用戶字典

1 #導入用戶的字典
2 #詞典格式:一個詞占一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。
3 #file_name 若為路徑或二進制方式打開的文件,則文件必須為 UTF-8 編碼
4 jieba.load_userdict('dict.txt')
5 print(jieba.lcut(str))
6 --------------------------------------------------------
7 ['今天', '我們', '中出了', '一個', '叛徒', '', '不想', '領導領導', '', '領導', '不是', '', '領導']
導入用戶字典
中出了
領導領導
dict.txt

 

四.實時操作字典

 1 jieba.add_word('一個叛徒')#實時在字典中添加某個詞
 2 print(jieba.lcut(str))
 3 jieba.del_word('領導')#刪除字典的某個詞
 4 print(jieba.lcut(str))
 5 jieba.suggest_freq(('一個','叛徒'),True)#可調節單個詞語的詞頻,使其能(或不能)被分出來
 6 print(jieba.lcut(str))
 7 jieba.suggest_freq(('',''),True)
 8 print(jieba.lcut(str))#自動計算的詞頻在使用 HMM 新詞發現功能時可能無效。
 9 print(jieba.lcut(str,HMM=False))#自動計算的詞頻在使用 HMM 新詞發現功能時可能無效。
10 ----------------------------------------------------------------------
11 ['今天', '我們', '中出', '', '一個叛徒', '', '不想', '領導', '領導', '', '領導', '不是', '', '領導']
12 Loading model cost 0.751 seconds.
13 Prefix dict has been built succesfully.
14 ['今天', '我們', '中出', '', '一個叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
15 ['今天', '我們', '中出', '', '一個', '叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
16 ['今天', '我們', '中出', '', '一個', '叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
17 ['今天', '我們', '', '', '', '一個', '叛徒', '', '不想', '', '', '', '', '', '', '', '不是', '', '', '']
操作字典

 

五.關鍵字提取

 1 import jieba.analyse
 2 
 3 str='今天我們中出了一個叛徒,不想領導領導的領導不是好領導'
 4 
 5 #關鍵字提取
 6 a=jieba.analyse.extract_tags(str, topK=20, withWeight=False, allowPOS=())
 7 # (文本,為返回幾個 TF/IDF 權重最大的關鍵詞,默認值為 20,
 8 # 為是否一並返回關鍵詞權重值,默認值為 False,僅包括指定詞性的詞,默認值為空,即不篩選)
 9 print(a)
10 
11 #基於 TextRank 算法的關鍵詞抽取
12 # 1.將待抽取關鍵詞的文本進行分詞
13 # 2.以固定窗口大小(默認為5,通過span屬性調整),詞之間的共現關系,構建圖
14 # 3.計算圖中節點的PageRank,注意是無向帶權圖
15 b=jieba.analyse.textrank(str, topK=20, withWeight=True, allowPOS=('n','nr','ns'))
16 print(b)
17 -------------------------------------------------------------------------
18 ['領導', '中出', '叛徒', '不想', '今天', '不是', '我們', '一個']
19 [('領導', 1.0), ('叛徒', 0.2510095552068219)]
關鍵字提取

 

六.其他

 1 import jieba.posseg as pseg
 2 import jieba
 3 str='今天我們中出了一個叛徒,不想領導領導的領導不是好領導'
 4 print(pseg.lcut(str))#詞性標注
 5 
 6 #並行分詞,不支持windows
 7 # jieba.enable_parallel(2)# 開啟並行分詞模式,參數為並發執行的進程數
 8 # jieba.disable_parallel()# 關閉並行分詞模式
 9 
10 #Tokenize:返回詞語在原文的起止位置
11 result = jieba.tokenize(str,mode='search')#輸入參數只接受 unicode
12 for i in result:
13     print(i)
14 ---------------------------------------------------------------------
15 [pair('今天', 't'), pair('我們', 'r'), pair('', 'f'), pair('', 'v'), pair('', 'ul'), pair('一個', 'm'), pair('叛徒', 'n'), pair('', 'x'), pair('不想', 'v'), pair('領導', 'n'), pair('領導', 'n'), pair('', 'uj'), pair('領導', 'n'), pair('不是', 'c'), pair('', 'a'), pair('領導', 'n')]
16 ('今天', 0, 2)
17 ('我們', 2, 4)
18 ('中出', 4, 6)
19 ('', 6, 7)
20 ('一個', 7, 9)
21 ('叛徒', 9, 11)
22 ('', 11, 12)
23 ('不想', 12, 14)
24 ('領導', 14, 16)
25 ('領導', 16, 18)
26 ('', 18, 19)
27 ('領導', 19, 21)
28 ('不是', 21, 23)
29 ('', 23, 24)
30 ('領導', 24, 26)
其他

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM