????????Jieba?是一個流行的中文分詞Python庫,它提供了三種分詞模式:精確模式、全模式和搜索引擎模式。精確模式嘗試將句子最精確地切分,適合文本分析;全模式則掃描文本中所有可能的詞語,速度快但存在冗余;搜索引擎模式在精確模式的基礎上,對長詞進行再次切分,提高召回率。
分詞功能
????????Jieba的核心功能是分詞,它依據詞庫確定漢字間的關聯概率。用戶可以通過以下函數進行分詞操作:
-
jieba.cut(s, cut_all=False): 精確模式,默認模式,返回一個可迭代的generator對象。
-
jieba.cut(s, cut_all=True): 全模式,返回一個可迭代的generator對象,可能包含冗余。
-
jieba.cut_for_search(s): 搜索引擎模式,返回一個可迭代的generator對象,對長詞進行再次切分。
返回列表的分詞
Jieba還提供了返回列表形式的分詞結果的函數:
-
jieba.lcut(s): 精確模式,返回一個列表類型的分詞結果。
-
jieba.lcut(s, cut_all=True): 全模式,返回一個列表類型的分詞結果,存在冗余。
-
jieba.lcut_for_search(s): 搜索引擎模式,返回一個列表類型的分詞結果,存在冗余。
自定義詞典
????????用戶可以通過jieba.add_word(w)向分詞詞典中增加新詞,以提高分詞的準確性。例如,如果有一個不常見的詞語“就這”,可以添加到詞典中,使得Jieba在未來的分詞操作中能夠識別它。
import jieba# 精確模式
words = jieba.cut("我愛自然語言處理", cut_all=False)
for word in words:print('精確模式:',word)# 全模式
words = jieba.cut("我愛自然語言處理", cut_all=True)
for word in words:print('全模式:',word)# 搜索引擎模式
words = jieba.cut_for_search("我愛自然語言處理")
for word in words:print('搜索引擎模式:',word)
示例:
import jieba
import chardet
from chardet import UniversalDetectorfileName='AI工具集.txt'
# #讀取進來,with open只能打開txt這樣的純文本,請勿打開非文本文檔(比如Office系列excel),嘗試使用UTF-8編碼打開文件
with open(fileName, 'r', encoding='utf-8') as file:content = file.read()# print(content)#分詞
lst=jieba.lcut(content)
print(lst)#去重操作
set1=set(lst) #使用集合實現去重
#
d={} #key:詞,value:出現的次數
for item in set1:if len(item)>2:print(item)d[item]=0#統計出現次數
for item in lst:if item in d:d[item]=d.get(item)+1
print(d)new_lst=[]
for item in d:new_lst.append([item,d[item]])
print(new_lst)#排序
new_lst.sort(key=lambda x:x[1],reverse=True)
print(new_lst[0:11]) #顯示的是前10項