【马上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

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java