一.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 ['今天', '我們', '中出了', '一個', '叛徒', ',', '不想', '領導領導', '的', '領導', '不是', '好', '領導']

中出了
領導領導
四.實時操作字典

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)