python jieba库,句子分词

简介

jieba是一个强大的中文分词工具,用于将中文文本切分成单个词语。

  1. 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官网

  2. 支持繁体分词

  3. 支持自定义词典

  4. 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 (词频理解)

posted @ 2024-08-25 02:39  二月雪  阅读(49)  评论(0编辑  收藏  举报