安裝:
https://github.com/fxsjy/jieba
下載安裝包 解壓后 進入文件夾 cmd運行:Python setup.py install
使用:
分詞:(test.py)
import jieba result = jieba.cut("我叫張海鷗") print("/".join(result)) >>>我/叫/張/海鷗
分詞+標簽:(test_bug,py)
import jieba import jieba.posseg as pseg words=pseg.cut("又跛又啞") for w in words: print(w.word,w.flag)
輸出:
官方說明:主要功能
- 分詞
jieba.cut
方法接受三個輸入參數: 需要分詞的字符串;cut_all 參數用來控制是否采用全模式;HMM 參數用來控制是否使用 HMM 模型jieba.cut_for_search
方法接受兩個參數:需要分詞的字符串;是否使用 HMM 模型。該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細- 待分詞的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建議直接輸入 GBK 字符串,可能無法預料地錯誤解碼成 UTF-8
jieba.cut
以及jieba.cut_for_search
返回的結構都是一個可迭代的 generator,可以使用 for 循環來獲得分詞后得到的每一個詞語(unicode),或者用jieba.lcut
以及jieba.lcut_for_search
直接返回 listjieba.Tokenizer(dictionary=DEFAULT_DICT)
新建自定義分詞器,可用於同時使用不同詞典。jieba.dt
為默認分詞器,所有全局分詞相關函數都是該分詞器的映射。
代碼示例
# encoding=utf-8 import jieba seg_list = jieba.cut("我來到北京清華大學", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式 seg_list = jieba.cut("我來到北京清華大學", cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精確模式 seg_list = jieba.cut("他來到了網易杭研大廈") # 默認是精確模式 print(", ".join(seg_list)) seg_list = jieba.cut_for_search("小明碩士畢業於中國科學院計算所,后在日本京都大學深造") # 搜索引擎模式 print(", ".join(seg_list))
輸出:
【全模式】: 我/ 來到/ 北京/ 清華/ 清華大學/ 華大/ 大學
【精確模式】: 我/ 來到/ 北京/ 清華大學
【新詞識別】:他, 來到, 了, 網易, 杭研, 大廈 (此處,“杭研”並沒有在詞典中,但是也被Viterbi算法識別出來了)
【搜索引擎模式】: 小明, 碩士, 畢業, 於, 中國, 科學, 學院, 科學院, 中國科學院, 計算, 計算所, 后, 在, 日本, 京都, 大學, 日本京都大學, 深造
傳入文件名參數進行分割並計時:(test_file.py)
import time import sys sys.path.append("../") import jieba jieba.initialize() url = sys.argv[1] content = open(url,"rb").read() t1 = time.time() words = "/ ".join(jieba.cut(content)) t2 = time.time() tm_cost = t2-t1 log_f = open("1.log","wb") log_f.write(words.encode('utf-8')) log_f.close() print('cost ' + str(tm_cost)) print('speed %s bytes/second' % (len(content)/tm_cost))
定位詞在文本中的位置:
- 注意,輸入參數只接受 unicode
import jieba g_mode="default" global g_mode result = jieba.tokenize(u'在1號店能買到小S和大S八卦的書。') # result = jieba.tokenize(test_sent,mode=g_mode,HMM=False) for tk in result: print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
另外還可以調整詞典 具體看 https://github.com/hosiet/jieba