jieba java_【NLP】【一】中文分词之jieba

article/2025/9/27 11:11:25

声明:本文参考jieba官方文档而成,官方链接:https://github.com/fxsjy/jieba

【一】jieba安装

pip install jieba

【二】jieba简介

简介可见jieba官方说明:https://pypi.org/project/jieba/

总而言之,jieba用于中文分词,支持的文本编码格式为utf-8,支持的功能包括:中文分词、关键字提取、词性标注

整体功能如下图:

16f668a797922e019579b1e695fbd963.png

【三】结巴使用之分词

1. 使用精确模式

# -*- coding:utf-8 -*-

import jieba

sentence = "我爱北京天安门"

seg = jieba.cut(sentence=sentence)

print("/".join(seg))

结果如下:

我/爱/北京/天安门

2. 使用全模式

import jieba

sentence = "我爱北京天安门"

seg = jieba.cut(sentence=sentence,cut_all=True)

print("/".join(seg))

结果如下:

我/爱/北京/天安/天安门

3.使用搜索模式

# -*- coding:utf-8 -*-

import jieba

sentence = "我爱北京天安门"

seg = jieba.cut_for_search(sentence=sentence)

print("/".join(seg))

结果如下:

我/爱/北京/天安/天安门

关于三种模式的区别,可见官方描述:

f67cdda488ae3f0174ae2ca315c6c710.png

4. 分词接口详解

4.1 cut接口,该接口接受三个参数,重点关注一下第一个参数:要求句子编译格式为unicode编码。所以,如果是GBK编码,需要先转换为utf-8接口的编码格式。

cut(self, sentence, cut_all=False, HMM=True)

- sentence: The str(unicode) to be segmented.

- cut_all: Model type. True for full pattern, False for accurate pattern.

- HMM: Whether to use the Hidden Markov Model.

当我们不知道文档的编码格式时,可以采用如下代码:

import chardet

with open("xxx.txt",'rb') as f:

data = f.read()

print(chardet.detect(data))

输出结果为:

{'confidence': 0.99, 'language': 'Chinese', 'encoding': 'GB2312'}

4.2 cut_for_search接口

cut_for_search(self, sentence, HMM=True)

4.3 jieba.lcut 以及 jieba.lcut_for_search 直接返回 list

print(jieba.lcut(sentence))

print(jieba.lcut_for_search(sentence))

结果如下:

['我', '爱', '北京', '天安门']

['我', '爱', '北京', '天安', '天安门']

【四】自定义词典

1. 先看看jieba自带的词典长啥样

jieba/dict.txt

T恤 4 n

A座 3 n

A股 3 n

A型 3 n

A轮 3 n

可以看出,jieba的词典组成格式为:一行一个词语,词语 词频 词性

据jieba官方介绍:

词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒

2. 自定一一个字典

我 4 n

北京 3 n

天安门

3. 使用自定义词典

jieba.load_userdict(r"D:\jieba-0.39\my_dict.txt")

print(jieba.lcut(sentence))

print(jieba.lcut_for_search(sentence))

结果如下:

['我', '爱', '北京', '天安门']

['我', '爱', '北京', '天安', '天安门']

【五】调整词典

jieba支持动态调整已经加载的词典

有两种方法

1. 将新词加入词典

2. 调整词典中的某个词的词频

使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。

使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。

【六】关键词提取

jieba分词支持两种关键词提取算法:TF-IDF、TextRank。这两种算法会在后面的文章结合jieba源码进行分析。这里先看看如何使用。

1. 基于TF-IDF进行关键词提取

print(','.join(jieba.analyse.extract_tags(sentence,topK=2)))

结果如下:

天安门,北京

1.1 接口详解 extract_tags

extract_tags(self, sentence, topK=20, withWeight=False, allowPOS=(), withFlag=False)

sentence 为待提取的文本

topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20

withWeight 为是否一并返回关键词权重值,默认值为 False

allowPOS 仅包括指定词性的词,默认值为空,即不筛选

该接口用于基于TF-IDF提取关键词,可用于筛选指定词性的关键词,返回值可以带关键词的权重,也可以不带。

2. 依据TextRank算法进行关键词提取

print(','.join(jieba.analyse.textrank(sentence,topK=2)))

结果如下:

天安门,北京

2.1 接口详解 textrank

textrank(self, sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'), withFlag=False):

- topK: return how many top keywords. `None` for all possible words.

- withWeight: if True, return a list of (word, weight);

if False, return a list of words.

- allowPOS: the allowed POS list eg. ['ns', 'n', 'vn', 'v'].

if the POS of w is not in this list, it will be filtered.

- withFlag: if True, return a list of pair(word, weight) like posseg.cut

if False, return a list of words

【七】词性标注

words =jieba.posseg.cut(sentence)

for word, flag in words:

print('%s %s' % (word, flag))

结果如下:

我 r

爱 v

北京 n

天安门 ns

总结:jieba提供的中文分词、词性标注、关键字提取等功能,使用简单,安装方便。其实现不仅有python版本,还有c++ java等版本,详情可以jieba官方链接:https://github.com/fxsjy/jieba


http://chatgpt.dhexx.cn/article/FQCKpYjv.shtml

相关文章

jieba 分词

一.介绍: jieba: “结巴”中文分词:做最好的 Python 中文分词组件 “Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module. 完整文档见 : GitHub: https://github.com…

jieba学习

Jieba jieba的安装主要功能1.主要有三种模式:2. 加载词典3.词性标注4.关键词提取5.Tokenize:返回词语在原文的起止位置 jieba的安装 先在 [http://pypi.python.org/pypi/jieba/]下载 ,解压后运行 python setup.py install 或者pin install j…

jieba 结巴分词详解

🔗 运行环境:python3🚩 作者:K同学啊🥇 精选专栏:《深度学习100例》🔥 推荐专栏:《新手入门深度学习》📚 极品专栏:《Matplotlib教程》📔 选自专栏…

NLP基本工具之jieba详解

jieba的作用只有分词吗? 简介 jieba(结巴)是百度工程师Sun Junyi开发的一个开源库,在GitHub上很受欢迎,使用频率也很高。 GitHub链接:https://github.com/fxsjy/jieba jieba最流行的应用是分词&#xff0…

jieba分词的最详细解读

目录 一,什么是jieba(结巴)库? 二,jieba库的使用规则 三,jieba库具体使用和实例 一,什么是jieba(结巴)库? 字如其名,结巴库主要用于中文分词&…

python中jieba库使用教程

jieba是python的一个中文分词库,下面介绍它的使用方法。 安装 方式1: pip install jieba方式2: 先下载 http://pypi.python.org/pypi/jieba/ 然后解压,运行 python setup.py install 功能 下面介绍下jieba的主要功能&#xff…

基于python中jieba包的详细使用介绍

一,jieba的介绍 jieba 是目前表现较为不错的 Python 中文分词组件,它主要有以下特性: 支持四种分词模式: 精确模式全模式搜索引擎模式paddle模式 支持繁体分词 支持自定义词典 MIT 授权协议 二,安装和使用 1&am…

CRC校验码的计算

循环冗余检验的原理: 在发送端,先把数据划分为组,假定每组k个比特,假定一个待传送的数据M(k位),CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去&…

CRC校验简单记录

先聊聊奇偶校验 所谓通讯过程的校验是指在通讯数据后加上一些附加信息,通过这些附加信息来判断接收到的数据是否和发送出的数据相同。校验得通信双方都有才行,接收方收到数据后进行计算得到一个校验值,与发送方发的校验值比较,如果…

CRC校验总结

事实上网上很多CRC校验算法,在接收端进行CRC校验时,余数不为零。这往往是因为CRC校验算法本身是有问题的,但不妨碍我们进行校验。接收端可以对需要校验的字段带入CRC校验算法,计算得到校验值,并与发送数据中的校验值进…

CRC校验码计算,以常用CRC-8为例

CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。 CRC校验原理:在要发送的帧后面附加一个数,生成一个新帧发送给接收端。它要使所生成的新帧能与发送端和接收端共同…

CRC校验码举例

CRC校验码举例 一、首先复习一下异或运算(XOR),相同得0,相异得1. 二、多项式算数 使用多项式算数是为了是为了在进行二进制计算时无需考虑进位问题。 CRC中用到的除数正是由多项式的各项系数组成。 比如1,CRC除数为10111。 三、…

CRC校验查表法原理及实现(CRC-16)

绪论 在网上浏览了很多关于CRC校验的文章,基本上都是针对CRC校验原理的阐述以及关于CRC校验查表法的实际应用以及具体软件实现方法。 至于查的表是怎么来的,软件为什么要这样实现很多文章并没有说明。本篇文章就针对这两点问题进行总结和归纳&#xff0…

CRC校验原理

线性分组码中有一种重要的码称为循环码(Cyclic code),这种码编码和解码都不太复杂,而且检(纠)错能力较强。循环码除了具有线性分组码的一般性质外,还具有循环性。循环性是指任一码组循环一位以后…

CRC码计算及校验原理计算

如何根据多项式计算 循环CRC码 5.3.2 循环冗余校验检错方案 奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。 1. CRC校验原理 CRC校验原理看…

CRC码计算及校验原理的最通俗诠释

在上一篇发布了我的最新著作《深入理解计算机网络》一书的原始目录(http://blog.csdn.net/lycb_gz/article/details/8199839),得到了许多读者朋友的高度关注和肯定,本篇接着发一篇关于CRC码校验原理和CRC码计算方面的通俗诠释的试…

最好懂的CRC校验规则讲解

文章目录 前言何为校验如何生成CRC校验码按字节位反转确定左移多少位生成多项式的数值式模二除法其它说明 前言 CRC校验的原理非常复杂,但是用起来却很简单,甚至别人写好了函数,直接拿来调用即可,但是我们还是需要了解一点这个校…

CRC校验原理及代码

参考:CRC校验原理及步骤https://blog.csdn.net/d_leo/article/details/73572373 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查&am…

CRC 校验计算

一、简介 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。 其根本思想就是先在要发送的帧后面附加校验码,再发送给接收端。…

如何进行CRC校验

为了保证数据传输的可靠性,计算机网络传输数据时,必须采用差错检验措施,数据链路层广泛应用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。 基本原理: CRC检验原理实际上就是在一个p位二进制数…