jieba学习

article/2025/9/27 11:07:53

Jieba

    • jieba的安装
    • 主要功能
    • 1.主要有三种模式:
    • 2. 加载词典
    • 3.词性标注
    • 4.关键词提取
    • 5.Tokenize:返回词语在原文的起止位置

jieba的安装

先在 [http://pypi.python.org/pypi/jieba/]下载 ,解压后运行 python setup.py install
或者pin install jieba

import jieba
'''
jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for str in strs:seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式print("Paddle Mode: " + '/'.join(list(seg_list)))  #join 列表格式化输出  通过 / 来 连接各个字符串
'''
seg_list = jieba.cut("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多。", cut_all=True)
print("Full Mode(全模式): " + "/ ".join(seg_list))  # 全模式seg_list = jieba.cut("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多.", cut_all=False)
print("Default Mode(精准模式): " + "/ ".join(seg_list))  # 精确模式seg_list = jieba.cut("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多.")  # 默认是精确模式
print("默认为精准",'/'.join(seg_list))seg_list = jieba.cut_for_search("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多。")  # 搜索引擎模式
print("搜索引擎模式",'/'.join(seg_list))

图(1)
可以使用,则说明安装成功。
(但在安装paddle出现了问题,在python37环境是可以使用,在conda下就出现报错,待解决)
conda也有jieba,paddle第三方库。

图(2)

主要功能

1.主要有三种模式:

  1. 全模式
  2. 精准模式
  3. 搜索引擎模式
    如上图(1)所示

图(3)
jieba.cut()有四个参数:sentence, 句子(str)、cut_all是否使用全模式, HMM是否使用HMM(默认使用), use_paddle是否启动paddle模式

jieba.cut_for_search()有两个参数,需要分词的字符串;是否使用 HMM 模型

jieba.cut() 和jieba.cut_for_search() 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语

或者
jieba.lcut() 和 jieba.lcut_for_search() 返回则是list

2. 加载词典

虽然jieba具有识别新词的功能,但也可以自行添加自己的创建的词典,提高自己的正确率。
jieba,load_userdict(file_name) file_name 为文件类对象或自定义词典的路径
词典格式:一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
注意:自动计算的词频在使用 HMM 新词发现功能时可能无效。

3.词性标注

提供paddle模式下的词性标注功能。paddle模式采用延迟加载方式,通过enable_paddle()安装paddlepaddle-tiny,并且import相关代码;

import jieba
import jieba.posseg as pseg
'''
jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for str in strs:seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式print("Paddle Mode: " + '/'.join(list(seg_list)))  #join 列表格式化输出  通过 / 来 连接各个字符串seg_list = jieba.cut("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多。", cut_all=True)
print("Full Mode(全模式): " + "/ ".join(seg_list))  # 全模式seg_list = jieba.cut("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多.", cut_all=False)
print("Default Mode(精准模式): " + "/ ".join(seg_list))  # 精确模式seg_list = jieba.cut("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多.")  # 默认是精确模式
print("默认为精准",'/'.join(seg_list))seg_list = jieba.cut_for_search("随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多。")  # 搜索引擎模式
print("搜索引擎模式",'/'.join(seg_list))print(help(jieba.cut))
'''
jieba.load_userdict('./data/dict.txt.big')
test_sent = (
"近年来,智能控制已成为先进控制的一个热点,该控制主要包括专家系统、模糊控制、神经网络等。专家系统可用于故障诊断、过程的监督控制等,它作为智能控制的一种重要工具,")
word = pseg.cut("我叫方小明,来自于北京,喜欢打篮球和游泳。") #jieba默认模式
words = jieba.cut(test_sent)
for word_1,flag in word :print('%s %s'%(word_1,flag))
print('/'.join(words))
jieba.enable_paddle() #启动paddle模式。 0.40版之后开始支持,早期版本不支持
words = jieba.cut(test_sent,use_paddle=True)
word=pseg.cut("我叫方小明,来自于北京,喜欢打篮球和游泳。",use_paddle=True)
print('/'.join(words))
for word_2 ,flag in word:print('%s %s'%(word_2,flag))

图4
图5

4.关键词提取

  1. 基于 TF-IDF 算法的关键词抽取

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

  • sentence 为待提取的文本
  • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
  • withWeight 为是否一并返回关键词权重值,默认值为 False
    -allowPOS 仅包括指定词性的词,默认值为空,即不筛选
import jieba.analyseprint('-'*40)
print(' TF-IDF')
print('-'*40)
s = "此外,公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元,增资后,吉林欧亚置业注册资本由7000万元增加到5亿元。吉林欧亚置业主要经营范围为房地产开发及百货零售等业务。目前在建吉林欧亚城市商业综合体项目。2013年,实现营业收入0万元,实现净利润-139.13万元。"
for x, w in jieba.analyse.extract_tags(s, withWeight=True):print('%s %s' % (x, w))

输出如下:
在这里插入图片描述

  • 基于 TextRank 算法的关键词抽取
    • jieba.analyse.textrank(sentence, topK=20, withWeight=False,
      allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’)) 直接使用,接口相同,注意默认过滤词性。
    • jieba.analyse.TextRank() 新建自定义 TextRank 实例

基本思想:
将待抽取关键词的文本进行分词
以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
计算图中节点的PageRank,注意是无向带权图

print('-'*40)
print(' TextRank')
print('-'*40)for x, w in jieba.analyse.textrank(s, withWeight=True):print('%s %s' % (x, w))

在这里插入图片描述

5.Tokenize:返回词语在原文的起止位置

jieba.tokenize() 主要有两个参数;原本;模式(mode)。返回list[word;start;end]

mode='search’为搜索模式


result = jieba.tokenize('公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元')
for tk in result:print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))print('-'*40)
print(' 搜索模式')
print('-'*40)result = jieba.tokenize('公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元', mode='search')
for tk in result:print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))


参考:结巴学习github


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

相关文章

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位二进制数…

CRC校验(个人小结)

前言 之前曾经在通信原理课程学习过、也在项目中使用软件模拟过CRC校验。但是仍然有许多困惑的地方,在网上找的资料也是零零散散,于是自己根据课程学习、项目实践以及网上的资料,做一个小结。不当之处请在评论区指出。推荐一个CRC在线校验工…

CRC码校验纠错原理

在接收端收到了CRC码后用生成多项式为G(x)去做模2除,若得到余数为0,则码字无误。若如果有一位出错,则余数不为0,而且不同位出错,其余数也不同。可以证明,余数与出错位的对应关系只与码制及生成多项式有关,而…