python jieba库,句子分词
简介
jieba是一个强大的中文分词工具,用于将中文文本切分成单个词语。
-
jieba库支持四种分词模式:
-- 精确模式,试图将句子最精确地切开,适合文本分析;
-- 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
-- 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
-- paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。目前paddle模式支持jieba v0.40及以上版本。jieba v0.40以下版本,请升级jieba,pip install jieba --upgrade 。PaddlePaddle官网 -
支持繁体分词
-
支持自定义词典
-
MIT 授权协议
函数方法
1、安装jieba库
pip install jieba
注:使用paddle模式下的分词和词性标注功能,需要安装 paddlepaddle-tiny 库:pip install paddlepaddle-tiny
2、分词
方法 |
---|
jieba.cut(str, cut_all=False, HMM=True, use_paddle=False) |
jieba.lcut(str, cut_all=False, HMM=True, use_paddle=False) |
jieba.cut_for_search(str, HMM=True) |
jieba.lcut_for_search(str, HMM=True) |
str 需要进行切割的字符串,待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串
cut_all 参数用来控制是否采用全模式,默认采用“精确模型”
HMM 参数用来控制是否使用 HMM 模型;
use_paddle 参数用来控制是否使用paddle模式下的分词模式,paddle模式采用延迟加载方式,通过enable_paddle接口安装paddlepaddle-tiny,并且需要 import paddlepaddle-tiny
分词返回值类型:
-- cut 和 cut_for_search 返回值类型都是一个迭代器generator(使用for可以依次遍历出来)
-- lcut 和 lcut_for_search 返回值类型都是一个列表
注:
-- 待分词的字符串str:unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
-- cut_for_search 方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
jieba.Tokenizer(dictionary=DEFAULT_DICT)
-- 新建自定义分词器,可用于同时使用不同词典。jieba.dt
为默认分词器,所有全局分词相关函数都是该分词器的映射。
3、添加自定义词典
jieba.load_userdict(file_name)
-file_name为自定义词典的路径,词典格式和dict.txt一样,一个词占一行;每一行分三部分:词语,词频(可省略),词性(可省略),用空格隔开,顺序不可颠倒,(频率越高,成词的概率就越大)
示例:/data/file/test.txt
计算机 5 n
北京 3 ns
天安门 2 ns
好用 15
天气 2
阳光 3
阳光明媚 5 nz
李明 2 nr
那天
略
4、paddle模式词性标注对应表:
标签 | 含义 | 标签 | 含义 | 标签 | 含义 | 标签 | 含义 |
---|---|---|---|---|---|---|---|
n | 普通名词 | f | 方位名词 | s | 处所名词 | t | 时间 |
nr | 人名 | ns | 地名 | nt | 机构名 | nw | 作品名 |
nz | 其他专名 | v | 普通动词 | vd | 动副词 | vn | 名动词 |
a | 形容词 | ad | 副形词 | an | 名形词 | d | 副词 |
m | 数量词 | q | 量词 | r | 代词 | p | 介词 |
c | 连词 | u | 助词 | xc | 其他虚词 | w | 标点符号 |
PER | 人名 | LOC | 地名 | ORG | 机构名 | TIME | 时间 |
5、操作词典
方法 | 说明 |
---|---|
jieba.add_word(word, freq=None, tag=None) | 添加新词到词典库中 |
jieba.del_word(word) | 删除词典库中的词 |
jieba.suggest_freq(segment, tune=True) | 调节单个词语的词频,使其能(或不能)被分出来 |
简单代码示例:
import jieba
file_name = "/data/file/test.txt" # 自定义的词典库
jieba.load_userdict(file_name) # jieba添加词典
_str = "今天天气明媚,可以和李明一起去打球"
result = jieba.cut()
word_list = [_ for _ in resultt]
print(word_list)
分词在NLP中的应用
中文分词是自然语言处理(NLP)中的重要步骤,常见应用包括:
- 文本分类:将文本切分成单词,用于构建文本的特征向量。
- 信息检索:将查询词切分成单词,用于在文本库中进行搜索。
- 机器翻译:将源语言切分成单词,用于翻译成目标语言。
参考文档:
github fxsjy/jieba (很详细,推荐)
fxsjy/jieba #issues 14 (词频理解)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!