"结巴"中文分词:做最好的Python中文分词组件 "Jieba"
支持三种分词模式:
支持繁体分词
支持自定义词典
http://jiebademo.ap01.aws.af.cm/
(Powered by Appfog)
Python3.x 版本的分支也已经基本可用: https://github.com/fxsjy/jieba/tree/jieba3k
git clone https://github.com/fxsjy/jieba.git git checkout jieba3k python setup.py install
代码示例( 分词 )
#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)
Output:
【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学 【精确模式】: 我/ 来到/ 北京/ 清华大学 【新词识别】:他, 来到, 了, 网易, 杭研, 大厦 (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了) 【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
范例:
用法示例:https://github.com/fxsjy/jieba/blob/master/test/test_userdict.py
"通过用户自定义词典来增强歧义纠错能力" --- https://github.com/fxsjy/jieba/issues/14
代码示例 (关键词提取)
https://github.com/fxsjy/jieba/blob/master/test/extract_tags.py
用法示例
>>> import jieba.posseg as pseg >>> words =pseg.cut("我爱北京天安门") >>> for w in words: ... print w.word,w.flag ... 我 r 爱 v 北京 ns 天安门 ns
用法:
例子: https://github.com/fxsjy/jieba/blob/master/test/parallel/test_file.py
实验结果:在4核3.4GHz Linux机器上,对金庸全集进行精确分词,获得了1MB/s的速度,是单进程版的3.3倍。
result = jieba.tokenize(u'永和服装饰品有限公司')
for tk in result:
print "word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2])
word 永和 start: 0 end:2 word 服装 start: 2 end:4 word 饰品 start: 4 end:6 word 有限公司 start: 6 end:10
result = jieba.tokenize(u'永和服装饰品有限公司',mode='search')
for tk in result:
print "word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2])
word 永和 start: 0 end:2 word 服装 start: 2 end:4 word 饰品 start: 4 end:6 word 有限 start: 6 end:8 word 公司 start: 8 end:10 word 有限公司 start: 6 end:10
占用内存较小的词典文件 https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.small
支持繁体分词更好的词典文件 https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.big
下载你所需要的词典,然后覆盖jieba/dict.txt 即可或者用jieba.set_dictionary('data/dict.txt.big')
jieba采用延迟加载,"import jieba"不会立即触发词典的加载,一旦有必要才开始加载词典构建trie。如果你想手工初始jieba,也可以手动初始化。
import jieba jieba.initialize() #手动初始化(可选)
在0.28之前的版本是不能指定主词典的路径的,有了延迟加载机制后,你可以改变主词典的路径:
jieba.set_dictionary('data/dict.txt.big')
例子: https://github.com/fxsjy/jieba/blob/master/test/test_change_dictpath.py
1)模型的数据是如何生成的?https://github.com/fxsjy/jieba/issues/7
2)这个库的授权是? https://github.com/fxsjy/jieba/issues/2
更多问题请点击:https://github.com/fxsjy/jieba/issues?sort=updated&state=closed
http://www.oschina.net/p/jieba/news#list
http://www.oschina.net/p/jieba
http://ddtcms.com/blog/archive/2013/2/4/69/jieba-fenci-suanfa-lijie/
https://github.com/fxsjy/jieba
转自:http://yxmhero1989.blog.163.com/blog/static/112157956201372610111536/