jieba模块
jieba
做最好的 Python 中文分詞組件
文章目錄
- jieba
- 特點
- 主要功能
- 分詞
- 添加自定義詞典
- 載入詞典
- 基于 TF-IDF 算法的關鍵詞抽取
- 并行分詞
- 詞語在原文的位置
- 延遲加載
- 命令分詞
特點
- 支持三種分詞模式:
- 精確模式:將句子最精確地切開,適合文本分析
- 全模式:將句子中所有的可以成詞的詞語都掃描出來,速度很快,但是不能解決歧義
- 搜索引擎模式:在精確的基礎上,對長詞再次切分,提高召回率,適用于搜索引擎分詞。
- 支持繁體分詞
- 支持自定義詞典
主要功能
分詞
- jieba.cut:接受三個輸參數:需要分詞的字符串;cut_all參數來控制是否采用全模式(默認精確模式);HMM 參數用來控制是否使用 HMM 模型。
- jieba.cut_for_search:接受兩個參數:需要分詞的字符串;使用使用 HMM 模型,該方法適合用于搜索引擎的構建倒排索引的分詞,粒度比較細。
注意:
添加自定義詞典
載入詞典
- 指定自己自定義的詞典,來補充jieba詞庫里沒有的詞。
- 用法:jieba.load_userdict(file_name) file_name 文件對象或路徑
- 詞典格式,一個詞占一行;一行分為三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不能顛倒。file_name 若為路徑或二進制打開,文件必須為UTF-8編碼。
基于 TF-IDF 算法的關鍵詞抽取
- jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
- sentence:待提取的文本
- topK:為返回幾個TF-IDF權重的關鍵詞
- withWeight:是否一并返回關鍵詞權重
- allowPOS:僅包括指定詞性的詞
- jieba.analyse.TFIDF(idf_path=None) 新建TF-IDF實例,為IDF頻率文件
并行分詞
原理:將目標文件按行分隔后,把各行文本分配到多個Python進程,然后歸并結果,從而獲得分詞速度提升
基于 Python 自帶的 multiprocessing 模塊
- jieba.enable_parallel(4) 開啟并行分詞模式,參數為并行進程數
- jieba.disable_parallel() 關閉并行分詞模式
**注意:**并行分詞僅支持默認分詞器 jieba.dt 和 jieba.posseg.dt。
import time import jiebajieba.enable_parallel(1) # 創建1個線程content = open('./1.txt',"rb").read()t1 = time.time() words = "/ ".join(jieba.cut(content)) t2 = time.time()log_f = open("1.log","wb") log_f.write(words.encode('utf-8'))print('speed %s bytes/second' % (len(content)/t2-t1))詞語在原文的位置
- 只接受unicode
延遲加載
jieba 加載采用延遲加載,import jieba 和 jieba.Tokenizer() 不會立即觸發詞典的加載,一旦有必要才開始加載詞典構建前綴字典。如果你想手工初始 jieba,也可以手動初始化。
import jieba jieba.initialize() # 手動初始化(可選)命令分詞
python -m jieba news.txt > cut_result.txt總結
- 上一篇: 对Hibernate使用之愚见
- 下一篇: C#中NULL,,DBNULL,Stri