一文快速上手 Python 中文分词神器 —— jieba 库

一文快速上手 Python 中文分词神器 —— jieba 库

在自然语言处理(NLP)中,中文文本处理的第一步通常是——分词
由于中文没有像英文那样的空格分隔单词,因此我们需要一个智能工具来识别“词语”的边界。

👉 这时候,jieba 就是最常用也最强大的中文分词库之一。

本文将带你快速上手 jieba,从安装到实战,仅需 10 分钟即可掌握核心用法。


文章目录


一、jieba 是什么?

jieba 是一个优秀的中文分词库,名字来源于“结巴”二字。
它基于前缀词典实现高效的词图扫描算法,结合 HMM(隐马尔可夫模型)来识别新词。

📌 简单来说,它能帮你:

  • 🔹 把句子切分成有意义的词语;
  • 🔹 自动识别新词;
  • 🔹 支持关键词提取;
  • 🔹 支持自定义词典。

二、安装 jieba

jieba库地址为GitHub - fxsjy/jieba: 结巴中文分词

使用 pip 一键安装即可:

pip install jieba 

安装完成后,在 Python 中导入:

import jieba 

三、jieba 的三种分词模式

jieba 提供了三种常用分词模式,适用于不同场景。

精确模式(默认)

尽量切分出最精确的词语,适合文本分析。
import jieba text ="我来到北京清华大学" words = jieba.cut(text, cut_all=False)print("精确模式:","/".join(words))

输出:

精确模式: 我/来到/北京/清华大学 

✅ 这种模式是最常用的,也是默认模式。


全模式

找出句子中所有可能的词(会有冗余),速度最快但不精确。
words = jieba.cut("我来到北京清华大学", cut_all=True)print("全模式:","/".join(words))

输出:

全模式: 我/来到/北京/清华/清华大学/华大/大学 

📍 全模式适合搜索引擎分词(即“匹配尽可能多的词”)。


搜索引擎模式

在精确模式的基础上,再次对长词进行细分,适合用于搜索引擎索引。
words = jieba.cut_for_search("小明硕士毕业于中国科学院计算所")print("搜索引擎模式:","/".join(words))

输出:

搜索引擎模式: 小明/硕士/毕业/于/中国/中国科学院/科学/学院/中国科学院计算所/计算/计算所 

✅ 适用于关键词匹配与搜索引擎分词场景。


四、添加自定义词典

有时候,jieba 默认词典可能无法识别你的专有词汇,比如品牌名、地名、人名。

例如:

text ="李小龙是中国功夫之王"print("/".join(jieba.cut(text)))

输出:

李/小龙/是/中国/功夫/之/王 

你可能希望“李小龙”被识别为一个整体。
我们可以通过 自定义词典 来实现。


方法一:动态添加词语

jieba.add_word("李小龙")print("/".join(jieba.cut(text)))

输出:

李小龙/是/中国/功夫/之/王 

方法二:加载外部词典文件

假设你有一个 user_dict.txt 文件:

李小龙 10 nr 中国功夫 5 nz 

加载方法:

jieba.load_userdict("user_dict.txt")

这样你可以批量添加专有名词、品牌词、地名等。


五、关键词提取

jieba 还支持根据 TF-IDF(词频-逆文档频率) 算法提取关键词,非常适合文本分析和摘要生成。

import jieba.analyse text ="人工智能是计算机科学的一个分支,它企图理解智能的实质,并生产出一种新的能以人类智能方式行动的机器。" keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)print("关键词提取结果:")for word, weight in keywords:print(f"{word} ({weight:.3f})")

输出示例:

关键词提取结果: 智能 (1.234) 计算机 (0.923) 科学 (0.612) 机器 (0.512) 理解 (0.438) 

📊 这些关键词代表了文本的主要语义。


六、词性标注(Part-of-Speech Tagging)

结合 jieba.posseg 模块可以为每个词标注词性(如名词、动词等)。

import jieba.posseg as pseg words = pseg.cut("我爱自然语言处理")for word, flag in words:print(f"{word} ({flag})")

输出:

我 (r) 爱 (v) 自然语言处理 (n) 

常见词性缩写:

词性含义
n名词
v动词
a形容词
r代词
ns地名
nr人名

七、并行分词(多线程)

当需要处理大规模文本时,jieba 提供了并行分词功能。

jieba.enable_parallel(4)# 使用4个线程 text ="非常长的一段文本..." words = jieba.cut(text) jieba.disable_parallel()

⚠️ 注意:并行分词在 Windows 上可能不稳定,建议在 Linux / macOS 环境使用。


八、完整示例:从句子到词云

import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt text ="我爱自然语言处理,Python让中文分词变得如此简单。"# 分词 words = jieba.cut(text) text_cut =" ".join(words)# 生成词云 wc = WordCloud(font_path="msyh.ttc", width=600, height=400).generate(text_cut) plt.imshow(wc, interpolation="bilinear") plt.axis("off") plt.show()

✅ 输出一张中文词云图,直观展示高频词。


九、jieba 常用 API 速查表

方法作用
jieba.cut(text, cut_all=False)精确模式分词
jieba.cut_for_search(text)搜索引擎模式分词
jieba.add_word(word)动态添加自定义词
jieba.load_userdict(file)加载自定义词典
jieba.analyse.extract_tags(text, topK)提取关键词(TF-IDF)
jieba.posseg.cut(text)词性标注
jieba.enable_parallel(num)启用并行分词

十、总结

功能说明
分词模式精确 / 全模式 / 搜索引擎
自定义词典支持动态和文件加载
关键词提取内置 TF-IDF 算法
词性标注支持词性识别
并行分词提升大文本处理速度

一句话总结:

jieba 是 Python 中文文本处理的首选工具,功能全、上手快、效果好。

Could not load content