python jieba分词库使用

2020-04-23 15:03:44 浏览数 (1)

image.png

jieba

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

“Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module.

GitHub: https://github.com/fxsjy/jieba

支持三种分词模式:
  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • 支持繁体分词
  • 支持自定义词典
  • MIT 授权协议

安装

代码语言:javascript复制
pip install jieba

image.png

验证是否安装成功:

image.png

导入成功,说明成功安装了。O(∩_∩)O

使用说明

jieba分词的三种模式

  • 精确模式:把文本精确的切分开,不存在冗余单词
  • 全模式:把文本中所有可能的词语都扫描出来,有冗余
  • 搜索引擎模式:在精确模式基础上,对长词再次切分
常用API函数

image.png

实战

代码语言:javascript复制
# -*- coding: utf-8 -*-
import jieba

seg_str = "曾虑多情损梵行,入山又恐别倾城,世间安得双全法,不负如来不负卿。"

print("/".join(jieba.lcut(seg_str)))    # 精简模式,返回一个列表类型的结果
print("/".join(jieba.lcut(seg_str, cut_all=True)))      # 全模式,使用 'cut_all=True' 指定 
print("/".join(jieba.lcut_for_search(seg_str)))     # 搜索引擎模式

运行效果:

image.png

计算下庆余年频率最高的词语
代码语言:javascript复制
# -*- coding: utf-8 -*-
import jieba

txt = open("./庆余年.txt", "r", encoding='utf-8').read()
# 精简模式
words = jieba.lcut(txt) 
# 使用key-value形式保存记录词语出现的次数    
counts = {}     

for word in words:
    # 排除长度为1的汉字词语
    if len(word) == 1:
        continue
    else:
        # 查询key值并对其对应的value值+1
        counts[word] = counts.get(word, 0)   1

items = list(counts.items())
# 排序
items.sort(key=lambda x: x[1], reverse=True)

# 列出前十个词语
for i in range(50):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))

注意:如果打开文档报错,需要讲文档转换成utf-8格式保存后,再次打开 运行结果:

image.png

参考

pypi 实例解析:Python jieba库用法(具有不错的参考价值)

0 人点赞