【马上NLP】jieba结巴分词工具常用功能详细介绍 笔记

2023-12-29 19:08

本文主要是介绍【马上NLP】jieba结巴分词工具常用功能详细介绍 笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【马上NLP】jieba结巴分词工具常用功能详细介绍 笔记

  • 视频地址
  • jieba安装
  • 功能
    • 分词
      • 四种分词模式对比:
      • 是否关闭发现新词:
    • 词性标注
    • 关键词提取
      • 方式
      • 参数
    • 载入词典

视频地址

图片与代码均源自up主和官方文档
https://www.bilibili.com/video/BV1xy4y187iC
jieba官方文档

jieba安装

需要python3.7的版本

  1. 全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba
  2. 如果需要使用paddle模式下的分词和词性标注功能,请先安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。

功能

在这里插入图片描述

常用API接口:

  1. jieba.cut 以及 jieba.cut_for_search :返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),用这个还api还要加for循环。

  2. jieba.lcut 以及 jieba.lcut_for_search :直接返回 list,用这个api直接可以打印出结果,建议使用这个。

1和2对比:

import jieba
str = '我来到北京清华大学'
print(str)
print('jieba.cut(str):', jieba.cut(str))
print('list(jieba.cut(str)):', list(jieba.cut(str)))
print('jieba.lcut(str):', jieba.lcut(str))输出:
我来到北京清华大学
jieba.cut(str): <generator object Tokenizer.cut at 0x00000198409560C8>
list(jieba.cut(str)): ['我', '来到', '北京', '清华大学']
jieba.lcut(str): ['我', '来到', '北京', '清华大学']

分词

四种分词模式对比:

  1. 精确模式:试图将句子最精确地切开,适合文本分析;
  2. 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  3. 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  4. paddle模式:利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。

四种分词模式对比:

import jieba
jieba.enable_paddle() # 引入paddle包,开启paddle模式
str = '我来到北京清华大学'
print(str)
print('精确模式:', jieba.lcut(str))
print('全模式:', jieba.lcut(str, cut_all=True))
print('搜索引擎模式:', jieba.lcut_for_search(str))
print('paddle模式:', jieba.lcut(str, use_paddle=True))输出:
我来到北京清华大学
精确模式: ['我', '来到', '北京', '清华大学']
全模式: ['我', '来到', '北京', '清华', '清华大学', '华大', '大学']
搜索引擎模式: ['我', '来到', '北京', '清华', '华大', '大学', '清华大学']
paddle模式: ['我', '来到', '北京清华大学']

是否关闭发现新词:

jieba.lcut()函数默认带有HMM用于发现新词。

import jieba
str = '他来到了网易杭研大厦'
print(str)
print('精确模式,默认开启HMM:', jieba.lcut(str))
print('精确模式:', jieba.lcut(str, HMM=False))输出:
他来到了网易杭研大厦
精确模式,默认开启HMM: ['他', '来到', '了', '网易', '杭研', '大厦']
精确模式,关闭HMM: ['他', '来到', '了', '网易', '杭', '研', '大厦']

词性标注

import jieba
import jieba.posseg as pseg
jieba.enable_paddle() # 引入paddle包,开启paddle模式
str = '我来到北京清华大学'
print(str)
print('默认模式:', pseg.lcut(str))
print('paddle模式:', pseg.lcut(str, use_paddle=True))输出:
我来到北京清华大学
默认模式: [pair('我', 'r'), pair('来到', 'v'), pair('北京', 'ns'), pair('清华大学', 'nt')]
paddle模式: [pair('我', 'r'), pair('来到', 'v'), pair('北京清华大学', 'ORG')]

关键词提取

方式

  1. 基于 TF-IDF 算法
  2. 基于 TextRank 算法
import jieba.analyse
str = '我来到北京清华大学'
print(str)
print('TF-IDF:', jieba.analyse.extract_tags(str))
print('TextRank:', jieba.analyse.textrank(str))输出:
我来到北京清华大学
TF-IDF: ['清华大学', '来到', '北京']
TextRank: ['来到', '北京']

参数

  1. topK :返回几个 TF/IDF 权重最大的关键词,默认值为 20
  2. withWeight :是否一并返回关键词权重值,默认值为 False
  3. allowPOS :返回指定词性的词,默认值为空,即不筛选

topK

import jieba.analyse
str = '此外,公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元,增资后,吉林欧亚置业注册资本由7000万元增加到5亿元。吉林欧亚置业主要经营范围为房地产开发及百货零售等业务。目前在建吉林欧亚城市商业综合体项目。2013年,实现营业收入0万元,实现净利润-139.13万元。'
print(str)
# topK
print('默认topK=20:', jieba.analyse.extract_tags(str))
print('topK=10:', jieba.analyse.extract_tags(str, topK=10))输出:
此外,公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元,增资后,吉林欧亚置业注册资本由7000万元增加到5亿元。吉林欧亚置业主要经营范围为房地产开发及百货零售等业务。目前在建吉林欧亚城市商业综合体项目。2013年,实现营业收入0万元,实现净利润-139.13万元。
默认topK=20: ['欧亚', '吉林', '置业', '万元', '增资', '4.3', '7000', '2013', '139.13', '实现', '综合体', '经营范围', '亿元', '在建', '全资', '注册资本', '百货', '零售', '子公司', '营业']
topK=10: ['欧亚', '吉林', '置业', '万元', '增资', '4.3', '7000', '2013', '139.13', '实现']

withWeight

import jieba.analyse
str = '我来到北京清华大学'
print(str)
# withWeight
print('默认withWeight=False:', jieba.analyse.extract_tags(str))
print('withWeight=True:', jieba.analyse.extract_tags(str, withWeight=True))输出:
我来到北京清华大学
默认withWeight=False: ['清华大学', '来到', '北京']
withWeight=True: [('清华大学', 2.6935315738733334), ('来到', 1.79522896137), ('北京', 1.5558007695733334)]

allowPOS

import jieba.analyse
str = '我来到北京清华大学'
print(str)
# allowPOS
print('默认显示全部词性:', jieba.analyse.extract_tags(str))
print('只显示\'v\'词性:', jieba.analyse.extract_tags(str, allowPOS=('v')))输出:
我来到北京清华大学
默认显示全部词性: ['清华大学', '来到', '北京']
只显示'v'词性: ['来到']

载入词典

意义:开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。

用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径。

构造字典:词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。

字典示例:

创新办 3 i
云计算 5
凱特琳 nz
台中

这篇关于【马上NLP】jieba结巴分词工具常用功能详细介绍 笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/550422

相关文章

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模