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库用法(具有不错的参考价值)