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

Posted 竹聿Simon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结巴中文分词使用学习(python)相关的知识,希望对你有一定的参考价值。

中文分词工具:结巴分词
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)的主要内容,如果未能解决你的问题,请参考以下文章

结巴分词 0.32 发布,Python 中文分词组件

如何利用Python对中文进行分词处理

python中文分词,使用结巴分词对python进行分词

结巴中文分词原理分析1

python结巴分词

“结巴”中文分词:做最好的 Python 中文分词组件