码迷,mamicode.com
首页 > 编程语言 > 详细

结巴中文分词使用学习(python)

时间:2016-05-22 12:32:43      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

中文分词工具:结巴分词
github地址:https://github.com/fxsjy/jieba

分词功能

  1. 精确模式(默认):试图将句子最精确地切开,适合文本分析;
  2. 全模式,把句子中所有的可以成词的词语都扫描出来,但是不能解决歧义;
  3. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。

    注意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报错方式,原因暂时未知。

其他

  1. 支持繁体分词
  2. 关键词提取
  3. 并行分词
  4. 返回词语在原文的起止位置

参考文献
官方说明:https://github.com/fxsjy/jieba
其他:https://segmentfault.com/a/1190000004061791

结巴中文分词使用学习(python)

标签:

原文地址:http://blog.csdn.net/churximi/article/details/51471272

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!