jieba(結巴)是一個強大的分詞庫,完美支持中文分詞,本文對其基本用法做一個簡要總結。
特點
安裝jieba
pip install jieba
簡單用法
結巴分詞分為三種模式:精確模式(默認)、全模式和搜索引擎模式,下面對這三種模式分別舉例介紹:
精確模式
import jiebas = u'我想和女朋友一起去北京故宮博物院參觀和閑逛。'
cut = jieba.cut(s)print '【Output】'print cutprint ','.join(cut)
【Output】<generator object cut at 0x7f8dbc0efc30>我,想,和,女朋友,一起,去,北京故宮博物院,參觀,和,閑逛,。
可見分詞結果返回的是一個生成器(這對大數據量數據的分詞尤為重要)。
全模式
print '【Output】'print ','.join(jieba.cut(s,cut_all = True))
【Output】我,想,和,女朋友,朋友,一起,去,北京,北京故宮,北京故宮博物院,故宮,故宮博物院,博物,博物院,參觀,和,閑逛,,
可見全模式就是把文本分成盡可能多的詞。
搜索引擎模式
print '【Output】'print ','.join(jieba.cut_for_search(s))
【Output】我,想,和,朋友,女朋友,一起,去,北京,故宮,博物,博物院,北京故宮博物院,參觀,和,閑逛,。
獲取詞性
每個詞都有其詞性,比如名詞、動詞、代詞等,結巴分詞的結果也可以帶上每個詞的詞性,要用到jieba.posseg,舉例如下:
import jieba.posseg as psgprint '【Output】'print [(x.word,x.flag) for x in psg.cut(s)]# 輸出:'''[(u'我', u'r'), (u'想', u'v'), (u'和', u'c'), (u'女朋友', u'n'), (u'一起', u'm'), (u'去', u'v'), (u'北京故宮博物院', u'ns'), (u'參觀', u'n'), (u'和', u'c'), (u'閑逛', u'v'), (u'。', u'x')]'''
可以看到成功獲取到每個詞的詞性,這對于我們對分詞結果做進一步處理很有幫助,比如只想獲取分詞結果列表中的名詞,那么就可以這樣過濾:
print [(x.word,x.flag) for x in psg.cut(s) if x.flag.startswith('n')]# 輸出:'''[(u'女朋友', u'n'), (u'北京故宮博物院', u'ns'), (u'參觀', u'n')]'''至于詞性的每個字母分別表示什么詞性,jieba分詞的結果可能有哪些詞性,就要去查閱詞性對照表了,本文結尾附了一份從網上搜到的詞性對照表,想了解更詳細的詞性分類信息,可以到網上搜索"結巴分詞詞性對照"。
新聞熱點
疑難解答