中文分词库 jieba 详细使用方法与案例演示

1 前言

jieba 是一个非常流行的中文分词库,具有高效、准确分词的效果。

它支持3种分词模式:

  • 精确模式
  • 全模式
  • 搜索引擎模式
python 复制代码
jieba==0.42.1

测试环境:python3.10.9

2 三种模式

2.1 精确模式

适应场景:文本分析。

功能:可以将句子精确的分开。

python 复制代码
import jieba

text = "有勇气的牛排是一个编程领域博主的名字"
segments = jieba.lcut(text)

print("精确模式分词结果:", segments)
# ['有', '勇气', '的', '牛排', '是', '一个', '编程', '领域', '博主', '的', '名字']

2.2 全模式

适应场景:提取词语。

功能:可以将句子中的成词的词语扫描出来,速度非常快,但不能解决歧义问题。

python 复制代码
import jieba

text = "有勇气的牛排是一个编程领域博主的名字"

segments = jieba.lcut(text, cut_all=True)
print("全模式分词结果:", segments)
# ['有', '勇气', '的', '牛排', '是', '一个', '编程', '领域', '博', '主', '的', '名字']

2.3 搜索引擎模式

适应场景:搜索分词。

功能:在精确模式的基础上,对长分词进行切分,提高召回率。

python 复制代码
import jieba

text = "有勇气的牛排是一个编程领域博主的名字"

segments = jieba.lcut_for_search(text)
print("搜索引擎模式分词结果:", segments)

3 自定义词典

jieba允许用户自定义词典,以提高分词的准确性。

比如专业术语、名字、网络新流行词汇、方言、以及其他不常见短语名字等。

3.1 添加单个词语

python 复制代码
import jieba

text = "有勇气的牛排是一个编程领域博主的名字"

jieba.add_word("有勇气的牛排")
segments = jieba.lcut_for_search(text)
print("搜索引擎模式分词结果:", segments)
# ['勇气', '牛排', '有勇气的牛排', '是', '一个', '编程', '领域', '博主', '的', '名字']

3.2 添加词典文件

cs_dict.txt

复制代码
有勇气的牛排
编程领域

main.py

python 复制代码
import jieba

text = "有勇气的牛排是一个编程领域博主的名字"

jieba.load_userdict("cs_dict.txt")

segments = jieba.lcut(text)
print("自定义词典文件分词结果:", segments)
# ['有勇气的牛排', '是', '一个', '编程领域', '博主', '的', '名字']

4 词性标注

jieba 的词性标注(POS tagging)功能使用了标注词性(Part-of-Speech tags)来表示每个词的词性。

4.1 词性对照表

原文地址:https://www.couragesteak.com/article/454

shell 复制代码
a   形容词  			ad  副形词  
ag  形容词性语素  	  an  名形词  
b   区别词  			c   连词  
d   副词  			dg  副语素  
e   叹词  			f   方位词  
g   语素  			h   前缀  
i   成语  			j   简称略语  
k   后缀  			l   习用语  
m   数词  			mg  数语素  
mq  数量词  			n   名词  
ng  名语素  			nr  人名  
ns  地名  			nt  机构团体  
nz  其他专名  		   o   拟声词  
p   介词  			q   量词  
r   代词  			rg  代词性语素  
s   处所词  			t   时间词  
tg  时间词性语素  	  u   助词  
vg  动语素  			v   动词  
vd  副动词  			vn  名动词  
w   标点符号  			x   非语素字  
y   语气词  			z   状态词  

4.2 测试案例

python 复制代码
import jieba.posseg as pseg

text = "有勇气的牛排是一个编程领域博主的名字"

words = pseg.cut(text)
for word, flag in words:
    print(f"{word} - {flag}")

5 关键词提取

python 复制代码
from jieba import analyse
text = "有勇气的牛排是一个编程领域博主的名字"

# 取前5个关键词
keywords = analyse.extract_tags(text, topK=5)
print("关键词提取结果:", keywords)

6 词频统计

python 复制代码
import jieba
from collections import Counter
text = "有勇气的牛排是一个编程领域博主的名字"

# 取前5个关键词
segments = jieba.lcut(text)
word_counts = Counter(segments)
print("词频统计结果:", word_counts)
相关推荐
JAI科研2 天前
把一个 Qwen3.8的聊天模型改造成 JEV 决策模型
人工智能·语言模型·自然语言处理·chatgpt·transformer·vllm·sglang
Solange__3 天前
航天科普怎么用AI生成3D场景?从科学约束、尺度分层到网页展示的完整方案
图像处理·人工智能·游戏·3d·ai·自然语言处理·关卡设计
kyrie_sakura3 天前
大模型学习18 大模型学习 - LangChain2_Model I/O
学习·自然语言处理
zhangfeng11333 天前
大语言模型 Greedy Decoding,贪心解码 / 贪心搜索
人工智能·语言模型·自然语言处理
博谷3 天前
什么是GEO监测?核心指标、工作原理与AI搜索诊断监测全解析
人工智能·机器学习·自然语言处理
FelixZhang0283 天前
不懂金融或不会编程,如何开始量化?从策略搭建到回测验证
人工智能·python·算法·数学建模·均值算法·自然语言处理·金融
Solange__3 天前
AI模型编辑器、Blender和3D Agent怎么选?按5类修改任务比较局部编辑、拓扑与自动化
人工智能·3d·自然语言处理·编辑器·音视频·blender·游戏策划
AI人工智能+4 天前
智能文档抽取系统通过“OCR+大模型”双引擎,实现从图像到结构化数据的精准转化,突破传统OCR仅识别文字的局限
自然语言处理·ocr·大语言模型·文档抽取
小豆庄4 天前
视频脱敏:云端识别与本地推理的边界实测
数据库·yolo·自然语言处理·视觉检测·视频·设计规范·纹理贴图
Allen_LVyingbo4 天前
三甲医院AI的1163实施路径(上)
人工智能·自然语言处理·自动化·健康医疗·数据库架构