【NLP】文本处理的基本方法【jieba分词、命名实体、词性标注】
文章目录
- 1、本章目标
- 2、什么是分词
- 3、jieba的使用
- 3.1、精确模式分词
- 3.2、全模式分词
- 3.3、搜索引擎模式分词
- 3.4、中文繁体分词
- 3.5、使用用户自定义词典
- 4、什么是命名实体识别
- 5、什么是词性标注
- 6、小结
- 7、jieba词性对照表⭐
🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎人工智能和前端开发。
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌻gitee地址:xzl的人工智能代码仓库
✈ 您的一键三连,是我创作的最大动力🌹
1、本章目标
- 了解什么是分词, 词性标注, 命名实体识别及其它们的作用.
- 掌握分词, 词性标注, 命名实体识别流行工具的使用方法.
2、什么是分词
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。
我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,
而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,
分词过程就是找到这样分界符的过程.
分词的作用:
词作为语言语义理解的最小单元, 是人类理解文本语言的基础
因此也是AI解决NLP领域高阶任务,如自动问答、机器翻译、文本生成的重要基础环节。
流行中文分词工具jieba:
愿景:"结巴"中文分词,做最好的 Python 中文分词组件
jieba的特性:
- 支持多种分词模式
- 精确模式
- 全模式
- 搜索引擎模式
- 支持中文繁体分词
- 支持用户自定义词典
3、jieba的使用
3.1、精确模式分词
试图将句子最精确地切开,适合文本分析:
# -*- coding: utf-8 -*-
# @Author: CSDN@逐梦苍穹
# @Time: 2024/8/9 2:09
import jiebacontent = "无线电法国别研究"
jieba.cut(content, cut_all=False) # cut_all默认为False# 将返回一个生成器对象: <generator object Tokenizer.cut at 0x7f065c19e318># 若需直接返回列表内容, 使用jieba.lcut即可
words = jieba.lcut(content, cut_all=False)
print(words) # 结果: ['无线电', '法国', '别', '研究']
输出:

3.2、全模式分词
把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能消除歧义
代码和上面的精确模式类似,只不过"cut_all=True":

输出:

3.3、搜索引擎模式分词
在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
# -*- coding: utf-8 -*-
# @Author: CSDN@逐梦苍穹
# @Time: 2024/8/9 2:14
import jiebacontent = "无线电法国别研究"
jieba.cut_for_search(content)# 将返回一个生成器对象: <generator object Tokenizer.cut at 0x7f065c19e318># 若需直接返回列表内容, 使用jieba.lcut_for_search即可
words = jieba.lcut_for_search(content)
# 对'无线电'等较长词汇都进行了再次分词.
print(words) # ['无线', '无线电', '法国', '别', '研究']
输出:

3.4、中文繁体分词
针对中国香港、中国台湾地区的繁体文本进行分词:
# -*- coding: utf-8 -*-
# @Author: CSDN@逐梦苍穹
# @Time: 2024/8/9 2:16
import jiebacontent = "煩惱即是菩提,我暫且不提"
words = jieba.lcut(content)
print(words) # ['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']
输出:

3.5、使用用户自定义词典
添加自定义词典后,jieba能够准确识别词典中出现的词汇,提升整体的识别准确率
词典格式:
- 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
- 词典样式如下, 具体词性含义请参照文末的
jieba词性对照表,将该词典存为userdict.txt,方便之后加载使用。
userdict.txt:

解释如下:

代码:
# -*- coding: utf-8 -*-
# @Author: CSDN@逐梦苍穹
# @Time: 2024/8/9 2:29
import jiebawords = jieba.lcut("八一双鹿更名为八一南昌篮球队!")
# 没有使用用户自定义词典前的结果:
print(words) # ['八', '一双', '鹿', '更名', '为', '八一', '南昌', '篮球队', '!']jieba.load_userdict("userdict.txt")
words = jieba.lcut("八一双鹿更名为八一南昌篮球队!")
# 使用了用户自定义词典后的结果:
print(words) # ['八一双鹿', '更名', '为', '八一', '南昌', '篮球队', '!']
运行结果:

4、什么是命名实体识别
命名实体:通常我们将人名、地名、机构名等专有名词统称命名实体.
如:周杰伦、黑山县、孔子学院、24辊方钢矫直机.
顾名思义:命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体
举个例子:
鲁迅, 浙江绍兴人, 五四新文化运动的重要参与者, 代表作朝花夕拾.
==>
鲁迅(人名) / 浙江绍兴(地名)人 / 五四新文化运动(专有名词) / 重要参与者 / 代表作 / 朝花夕拾(专有名词)
命名实体识别的作用:
同词汇一样,命名实体也是人类理解文本的基础单元,
因此也是AI解决NLP领域高阶任务的重要基础环节。
5、什么是词性标注
词性:语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果
常见的词性有14种,如:名词、动词、形容词等
顾名思义:词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性
举个例子:
我爱自然语言处理
==>
我/rr, 爱/v, 自然语言/n, 处理/vn
解释:
- rr: 人称代词
- v: 动词
- n: 名词
- vn: 动名词
词性标注的作用: 词性标注以分词为基础,是对文本语言的另一个角度的理解,因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
使用jieba进行中文词性标注:
# -*- coding: utf-8 -*-
# @Author: CSDN@逐梦苍穹
# @Time: 2024/8/9 2:38
import jieba.posseg as pseg # 专门用于分词和词性标注# 结果返回一个装有pair元组的列表, 每个pair元组中分别是词汇及其对应的词性, 具体词性含义请参照[附录: jieba词性对照表]()
words = pseg.lcut("我爱北京天安门")
print(words) # [pair('我', 'r'), pair('爱', 'v'), pair('北京', 'ns'), pair('天安门', 'ns')]
输出:

6、小结
- 学习了什么是分词:
- 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.
- 学习了分词的作用:
- 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
- 学习了流行中文分词工具jieba:
- 支持多种分词模式:精确模式、全模式、搜索引擎模式
- 支持中文繁体分词
- 支持用户自定义词典
- 学习了jieba工具的安装和分词使用
- 学习了什么是命名实体识别:
- 命名实体:通常我们将人名、地名、机构名等专有名词统称命名实体。
- 顾名思义,命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体。
- 命名实体识别的作用:
- 同词汇一样,命名实体也是人类理解文本的基础单元,因此是AI解决NLP领域高阶任务的重要基础环节
- 学习了什么是词性标注:
- 词性:语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种,如:名词、动词、形容词等
- 顾名思义,词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性
- 学习了词性标注的作用:
- 词性标注以分词为基础,是对文本语言的另一个角度的理解,因此也常常成为AI解决NLP领域高阶任务的重要基础环节
- 学习了使用jieba进行词性标注
7、jieba词性对照表⭐
- a 形容词 - ad 副形词 - ag 形容词性语素 - an 名形词
- b 区别词
- c 连词
- d 副词 - df - dg 副语素
- e 叹词
- f 方位词
- g 语素
- h 前接成分
- i 成语
- j 简称略称
- k 后接成分
- l 习用语
- m 数词 - mg - mq 数量词
- n 名词 - ng 名词性语素 - nr 人名 - nrfg - nrt - ns 地名 - nt 机构团体名 - nz 其他专名
- o 拟声词
- p 介词
- q 量词
- r 代词 - rg 代词性语素 - rr 人称代词 - rz 指示代词
- s 处所词
- t 时间词 - tg 时语素
- u 助词 - ud 结构助词 得- ug 时态助词- uj 结构助词 的- ul 时态助词 了- uv 结构助词 地- uz 时态助词 着
- v 动词 - vd 副动词- vg 动词性语素 - vi 不及物动词 - vn 名动词 - vq
- x 非语素词
- y 语气词
- z 状态词 - zg
相关文章:
【NLP】文本处理的基本方法【jieba分词、命名实体、词性标注】
文章目录 1、本章目标2、什么是分词3、jieba的使用3.1、精确模式分词3.2、全模式分词3.3、搜索引擎模式分词3.4、中文繁体分词3.5、使用用户自定义词典 4、什么是命名实体识别5、什么是词性标注6、小结7、jieba词性对照表⭐ 🍃作者介绍:双非本科大三网络…...
unity 本地使用Json(全套)
提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、Json是什么?二、创建Json文件1.在线编辑并转实体类(C#)2.Json文件 三、解析Json并使用四、报错:JsonError:JsonExce…...
java消息队列ActiveMQ
安装 前置条件 activemq的运行依赖于jdk,需要提前安装jdk如果已经安装了jdk,需要根据jdk的版本来选择对应的版本进行安装activemq版本对应在官网上,使用java -version 看jdk的版本注意:jdk和mq的版本不一致会报错,电脑…...
Android SurfaceFlinger——信号同步原理(五十一)
经过前面系列文章的学习,我们的已经理解了 SurfaceFlinger 运行机制以及同步机制,但是SurfaceFlinger 又是以什么方法是把需要刷新的信号发送给 App 进程的。 一、VSync简介 垂直同步(Vertical Synchronization,简称 VSync)是一种用于同步视频信号和显示设备刷新率的技术…...
html+css网页制作 博云丝网5个页面 无js ui还原度100%
htmlcss网页制作 博云丝网5个页面 无js ui还原度100% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取…...
Docker Hub 镜像代理加速
因为未知原因,docker hub 已经不能正常拉取镜像,可以使用以下代理服务来进行: "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud"…...
矩阵:消除冗余
矩阵 基本概念 矩阵(Matrix)是一个按照行和列排列的元素的二维数组。具体来说,一个 ( m \times n ) 的矩阵有 ( m ) 行和 ( n ) 列,表示为: A ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯…...
【AWS账号解绑关联】Linker账号解绑重新关联注意事项
文章目录 一、来自客户疑问二、提交工单获取帮助三、最佳操作说明四、最佳操作步骤五、参考资料活动上新 一、来自客户疑问 将Linker账号,从一个组织中退出,重新关联到新的组织中,这解绑到重新完成新的关联绑定期间会在Linker账号中的账单中…...
入门学习使用overleaf和latex
文章目录 1.下载对应的latex论文模板2.overleaf平台的使用2.1overleaf平台的介绍2.2overleaf平台模板文件的上传2.3latex语法的学习2.3.2 分段(如下图显示)2.3.3 其他2.3.4简单latex实操2.3.5 换行符和换页符2.3.6左右居中对齐2.3.7 字体设置2.3.8插入固定位置图片2.3.9文字包围…...
后端调优——分布式锁选型——入门
文章目录 引言正文分布式锁的定义分布式锁的具体应用场景如何实现分布式锁主动轮询型分布式锁实现思路一、MySQL分布式锁二、Redis分布式锁 监听回调型分布式锁Etcd分布式锁Zookeeper分布式锁 锁的对比 总结 引言 最近面试,一直被问到分布式锁,然后仅仅…...
k8s集群管理 Pod管理命令
k8s集群管理命令 信息查询命令 子命令说明help用于查看命令及子命令的帮助信息cluster-info显示集群的相关配置信息api-resources查看当前服务器上所有的资源对象api-versions查看当前服务器上所有资源对象的版本config管理当前节点上的认证信息 资源对象概述 Pod概述 Pod 管…...
Java 并发(二)—— AQS原理
AQS,全名AbstractQueuedSynchronizer。 抽象队列同步器定义多线程访问共享资源的同步模板,解决了实现自定义同步器时涉及的大量细节问题,简化开发两种同步状态:独占、共享核心组件:State变量、CLH变体队列、获取 / 释…...
Maven插件:exec-maven-plugin-代码执行或者直接输出内置变量信息
文章目录 概述使用应用自行实现记录项目打包插件 概述 官网: https://www.mojohaus.org/exec-maven-plugin/usage.html 依赖: https://mvnrepository.com/artifact/org.codehaus.mojo/exec-maven-plugin 使用 <plugin><groupId>org.codeh…...
https://ffmpeg.org/
https://ffmpeg.org/ https://www.gyan.dev/ffmpeg/builds/ https://github.com/BtbN/FFmpeg-Builds/releases F:\Document_ffmpeg F:\Document_ffmpeg\ffmpeg-master-latest-win64-gpl-shared\bin...
linux 源码部署polardb-x 错误汇总
前言 在linux 源码部署polardb-x 遇到不少错误,特在此做个汇总。 问题列表 CN 启动报错 Failed to init new TCP 详细错误如下 Caused by: Failed to init new TCP. XClientPool to my_polarx#267b21d8127.0.0.1:33660 now 0 TCP(0 aging), 0 sessions(0 runni…...
vscode用快捷键一键生成vue模板
项目中有些代码模块是固定的,如下面的代码所示,为了不重复写这些相同的代码,我们可以使用快键键一键生成模板。 流程: 中文:首选项-> 用户代码片段 -> 输入框中输入vue,找到vue.json文件(没有vue.j…...
ARM 架构硬件新趋势:嵌入式领域的未来
目录 目录 一、ARM 架构概述 二、新趋势一:AI 加速器集成 三、新趋势二:更高效的电源管理 四、新趋势三:安全性增强 五、结语 随着物联网 (IoT) 和边缘计算的发展,ARM 架构在嵌入式系统中的应用越来越广泛。从智能手机到智能…...
星戈瑞-二油酰磷脂酰乙醇胺标记荧光素 DOPE-FITC
DOPE-FITC,全称为1,2-dioleoyl-sn-glycero-3-phosphoethanolamine-N-FITC,是一种结合了二油酰磷脂酰乙醇胺(DOPE)与荧光素异硫氰酸酯(FITC)的复合标记物。以其独特的磷脂结构和强烈的绿色荧光特性ÿ…...
堆的实现(偷懒版)
🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 目录 前言 一、堆的实现 1.1 堆的向下调整算法 思路: 1.2 堆的向上调整算法 1.3 堆的创建 1.4 堆的复杂度计算 向下调整建堆的复杂度…...
一键启动,智能分拣:3D视觉系统赋能多SKU纸箱高效混拆作业
在快速发展的电商时代,仓储物流面临着前所未有的挑战。尤其是面对成千上万种不同的纸箱,如何实现快速、准确、高效的混拆作业,成为了众多企业亟待解决的问题。幸运的是,随着科技的进步,3D视觉系统正逐步成为这一领域的…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
