字
字节笔记本
2026年2月19日
jieba:结巴中文分词 - Python 最流行的中文分词库
本文介绍 jieba(结巴中文分词),一个流行的 Python 中文分词库,支持多种分词模式和关键词提取功能。
jieba 简介
jieba(结巴中文分词)是由 fxsjy 开发的 Python 中文分词库,是目前最流行的中文分词工具之一。它支持多种分词模式,在 GitHub 上拥有 34.8k stars 和 6.7k forks,采用 MIT 许可证。
核心定位:做最好的 Python 中文分词组件
核心特性
- 四种分词模式:精确模式、全模式、搜索引擎模式、paddle 模式
- 支持繁体分词
- 支持自定义词典
- 基于前缀词典实现高效的词图扫描,生成 DAG(有向无环图)
- 采用动态规划查找最大概率路径
- 对未登录词使用 HMM 模型和 Viterbi 算法
基本信息
- GitHub 仓库:https://github.com/fxsjy/jieba
- 星标数:34.8k stars
- Fork 数:6.7k forks
- 许可证:MIT
安装方法
bash
pip install jieba安装 paddle 模式支持(可选):
bash
pip install paddlepaddle-tiny分词模式
1. 精确模式
试图将句子最精确地切开,适合文本分析。
python
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("/ ".join(seg_list))
# 输出: 我/ 来到/ 北京/ 清华大学2. 全模式
把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。
python
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("/ ".join(seg_list))
# 输出: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学3. 搜索引擎模式
在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
python
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所")
print("/ ".join(seg_list))
# 输出: 小明/ 硕士/ 毕业/ 于/ 中国/ 科学院/ 中国科学院/ 计算/ 计算所4. Paddle 模式
基于 PaddlePaddle 深度学习框架,分词效果更优。
python
jieba.enable_paddle()
seg_list = jieba.cut("我来到北京清华大学", use_paddle=True)主要功能
添加自定义词典
python
# 加载自定义词典
jieba.load_userdict("userdict.txt")
# 动态添加词语
jieba.add_word("石墨烯")
# 调整词频
jieba.suggest_freq(("中", "将"), True)关键词提取
基于 TF-IDF 算法:
python
import jieba.analyse
text = "机器学习是人工智能的一个分支"
keywords = jieba.analyse.extract_tags(text, topK=3)
print(keywords)
# 输出: ['机器学习', '人工智能', '分支']基于 TextRank 算法:
python
keywords = jieba.analyse.textrank(text, topK=3)词性标注
python
import jieba.posseg as pseg
words = pseg.cut("我爱北京天安门")
for word, flag in words:
print(f"{word} {flag}")
# 输出:
# 我 r
# 爱 v
# 北京 ns
# 天安门 ns并行分词
python
# 开启并行分词(仅支持 Linux/Unix)
jieba.enable_parallel(4) # 4个进程
# 分词操作...
# 关闭并行分词
jieba.disable_parallel()Tokenize
返回词语在原文的起止位置:
python
result = jieba.tokenize("永和服装饰品有限公司")
for tk in result:
print(f"word: {tk[0]}, start: {tk[1]}, end: {tk[2]}")命令行分词
bash
python -m jieba input.txt > output.txt分词速度
- 全模式:1.5 MB/Second
- 默认模式:400 KB/Second
其他语言实现
jieba 已被移植到多种编程语言:
- Java: jieba-analysis
- C++: cppjieba
- Rust: jieba-rs
- Node.js: nodejieba
- Erlang: ejieba
- R: jiebaR
- iOS: jieba-ios
- PHP: jieba-php
- .NET(C#): jieba.NET
- Go: gojieba
- Android: android-jieba
适用场景
- 中文自然语言处理
- 搜索引擎开发
- 文本挖掘和分析
- 机器学习数据预处理
- 关键词提取
- 情感分析
总结
jieba 是中文分词领域的标杆项目,其优势包括:
- 算法先进:基于 DAG + HMM,分词准确率高
- 模式丰富:四种分词模式满足不同场景
- 功能完善:支持自定义词典、关键词提取、词性标注
- 生态丰富:多语言移植版本
- 社区活跃:34.8k stars,持续维护
对于需要中文分词功能的 Python 项目来说,jieba 是首选方案。
分享: