中文分詞工具:結巴分詞
github地址:https://github.com/fxsjy/jieba
分詞功能
- 精確模式(默認):試圖將句子最精確地切開,適合文本分析;
- 全模式,把句子中所有的可以成詞的詞語都掃描出來,但是不能解決歧義;
搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細。
注意:jieba.cut以及jieba.cut_for_search返回的結構都是一個可迭代的 generator,並不是一個list列表。
示例代碼1
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:結巴分詞測試,基本分詞功能
時間:2016年5月21日 15:44:24
"""
import jieba
# 分詞模式
seg = jieba.cut("這是一本關於信息檢索的書", cut_all=True) # cut_all=True,全模式
print(u"全模式分詞: " + "/ ".join(seg))
seg = jieba.cut("這是一本關於信息檢索的書", cut_all=False) # cut_all=False,精確模式
print(u"精確模式分詞: " + "/ ".join(seg))
seg = jieba.cut("他來到了網易杭研大廈") # 默認是精確模式
print(", ".join(seg))
seg = jieba.cut_for_search("小明碩士畢業於中國科學院計算所,後在日本京都大學深造") # 搜索引擎模式
print(", ".join(seg))
添加自定義詞典
用法: jieba.load_userdict(file_name)
file_name 爲文件類對象或自定義詞典的路徑
詞典格式:一個詞佔一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略);用空格隔開,順序不可顛倒。
詞典示例:
雲計算 5
李小福 2 nr
創新辦 3 i
easy_install 3 eng
好用 300
韓玉賞鑑 3 nz
八一雙鹿 3 nz
臺中
凱特琳 nz
Edu Trust認證 2000
示例代碼2
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:結巴分詞測試,添加詞典
時間:2016年5月21日 15:44:24
"""
import jieba
# 添加自定義詞典
jieba.load_userdict("userdic.txt")
seg = jieba.cut("這是一本關於信息檢索的書")
print "/ ".join(seg)
if __name__ == "__main__":
pass
詞性標註
採用和 ictclas (NLPIR)兼容的標記法。
words = pseg.cut("這是一本關於信息檢索的書")
for word, flag in words:
print ('%s %s' % (word, flag))
備註:在anaconda python下,上述print報錯方式,原因暫時未知。
其他
- 支持繁體分詞
- 關鍵詞提取
- 並行分詞
- 返回詞語在原文的起止位置
參考文獻
官方說明:https://github.com/fxsjy/jieba
其他:https://segmentfault.com/a/1190000004061791