中文分詞效果好用又簡單的包弃甥,我認(rèn)為就是jieba了湿硝。
主要功能
1. 分詞
jieba.cut方法
接受三個輸入?yún)?shù): 需要分詞的字符串挺份;cut_all 參數(shù)用來控制是否采用全模式娘香;HMM 參數(shù)用來控制是否使用 HMM 模型
jieba.cut_for_search方法
接受兩個參數(shù):需要分詞的字符串萝勤;是否使用 HMM 模型。該方法適合用于搜索引擎構(gòu)建倒排索引的分詞耻涛,粒度比較細(xì)
待分詞的字符串可以是 unicode 或 UTF-8 字符串废酷、GBK 字符串瘟檩。注意:不建議直接輸入 GBK 字符串,可能無法預(yù)料地錯誤解碼成 UTF-8
jieba.cut以及jieba.cut_for_search
返回的結(jié)構(gòu)都是一個可迭代的 generator澈蟆,可以使用 for 循環(huán)來獲得分詞后得到的每一個詞語(unicode)墨辛,或者用jieba.lcut以及jieba.lcut_for_search直接返回 list
jieba.Tokenizer(dictionary=DEFAULT_DICT)
新建自定義分詞器,可用于同時使用不同詞典趴俘。jieba.dt
為默認(rèn)分詞器睹簇,所有全局分詞相關(guān)函數(shù)都是該分詞器的映射。
代碼示例
#encoding=utf-8
import jiebaseg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精確模式
seg_list = jieba.cut("他來到了網(wǎng)易杭研大廈") # 默認(rèn)是精確模式
print(", ".join(seg_list))
seg_list = jieba.cut_for_search("小明碩士畢業(yè)于中國科學(xué)院計算所寥闪,后在日本京都大學(xué)深造") # 搜索引擎模式
print(", ".join(seg_list))
輸出:
【全模式】: 我/ 來到/ 北京/ 清華/ 清華大學(xué)/ 華大/ 大學(xué)
【精確模式】: 我/ 來到/ 北京/ 清華大學(xué)
【新詞識別】:他, 來到, 了, 網(wǎng)易, 杭研, 大廈 (此處太惠,“杭研”并沒有在詞典中,但是也被Viterbi算法識別出來了)
【搜索引擎模式】: 小明, 碩士, 畢業(yè), 于, 中國, 科學(xué), 學(xué)院, 科學(xué)院, 中國科學(xué)院, 計算, 計算所, 后, 在, 日本, 京都, 大學(xué),
#分析云麓園BBS水吧文本,生成詞頻統(tǒng)計(單詞和單詞的頻次)
import jieba
import time
path = r'E:\Python\Projects\Dig_text\云麓園\云麓水吧.txt'
read_txt = open(path, 'r')
ShuiBa_word_list = [] # 匯總水吧的所有詞語的列表(有順序疲憋,重復(fù))
ShuiBa_word_set = set() # 得到水吧所有詞語的集合(無順序凿渊,不重復(fù))
for line in read_txt.readlines():
line = line.replace(' ', '')
line = line.strip('\n')
word_list = jieba.lcut(line, cut_all=False) #cut_all=false精準(zhǔn)模式
word_set = set(word_list)
ShuiBa_word_list = ShuiBa_word_list + word_list
ShuiBa_word_set = ShuiBa_word_set.union(word_set)
for word in ShuiBa_word_set:
fre = ShuiBa_word_list.count(word)
print(word, str(fre)) #打印詞語及其頻率
最后附上我的源代碼,水吧帖子文件和分析后的結(jié)果鏈接:
https://pan.baidu.com/s/1eSc94kU 密碼: 9rch
微信公眾號:大鄧帶你玩轉(zhuǎn)python