【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的特性:

  1. 支持多种分词模式
    1. 精确模式
    2. 全模式
    3. 搜索引擎模式
  2. 支持中文繁体分词
  3. 支持用户自定义词典

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)  # 结果: ['无线电', '法国', '别', '研究']

输出:
image.png

3.2、全模式分词

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

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)  # ['无线', '无线电', '法国', '别', '研究']

输出:
image.png

3.4、中文繁体分词

针对中国香港、中国台湾地区的繁体文本进行分词:

# -*- coding: utf-8 -*-
# @Author: CSDN@逐梦苍穹
# @Time: 2024/8/9 2:16
import jiebacontent = "煩惱即是菩提,我暫且不提"
words = jieba.lcut(content)
print(words)  # ['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']

输出:
image.png

3.5、使用用户自定义词典

添加自定义词典后,jieba能够准确识别词典中出现的词汇,提升整体的识别准确率
词典格式:

  1. 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
  2. 词典样式如下, 具体词性含义请参照文末的 jieba词性对照表,将该词典存为userdict.txt,方便之后加载使用。

userdict.txt:
image.png
解释如下:
image.png
代码:

# -*- 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)  # ['八一双鹿', '更名', '为', '八一', '南昌', '篮球队', '!']

运行结果:
image.png

4、什么是命名实体识别

命名实体:通常我们将人名、地名、机构名等专有名词统称命名实体.

如:周杰伦、黑山县、孔子学院、24辊方钢矫直机.

顾名思义:命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体
举个例子:

鲁迅, 浙江绍兴人, 五四新文化运动的重要参与者, 代表作朝花夕拾.
==>
鲁迅(人名) / 浙江绍兴(地名)人 / 五四新文化运动(专有名词) / 重要参与者 / 代表作 / 朝花夕拾(专有名词)


命名实体识别的作用:

同词汇一样,命名实体也是人类理解文本的基础单元,
因此也是AI解决NLP领域高阶任务的重要基础环节。

5、什么是词性标注

词性:语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果

常见的词性有14种,如:名词、动词、形容词等

顾名思义:词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性
举个例子:

我爱自然语言处理
==>
我/rr, 爱/v, 自然语言/n, 处理/vn

解释:

  1. rr: 人称代词
  2. v: 动词
  3. n: 名词
  4. 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')]

输出:
image.png

6、小结

  1. 学习了什么是分词:
    1. 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.
  2. 学习了分词的作用:
    1. 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
  3. 学习了流行中文分词工具jieba:
    1. 支持多种分词模式:精确模式、全模式、搜索引擎模式
    2. 支持中文繁体分词
    3. 支持用户自定义词典
  4. 学习了jieba工具的安装和分词使用
  5. 学习了什么是命名实体识别:
    1. 命名实体:通常我们将人名、地名、机构名等专有名词统称命名实体。
    2. 顾名思义,命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体。
  6. 命名实体识别的作用:
    1. 同词汇一样,命名实体也是人类理解文本的基础单元,因此是AI解决NLP领域高阶任务的重要基础环节
  7. 学习了什么是词性标注:
    1. 词性:语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种,如:名词、动词、形容词等
    2. 顾名思义,词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性
  8. 学习了词性标注的作用:
    1. 词性标注以分词为基础,是对文本语言的另一个角度的理解,因此也常常成为AI解决NLP领域高阶任务的重要基础环节
  9. 学习了使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/399562.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv-python图像增强三:图像清晰度增强

文章目录 一、简介&#xff1a;二、图像清晰度增强方案&#xff1a;三、算法实现步骤3.1高反差保留实现3.2. usm锐化3.3 Overlay叠加 四&#xff1a;整体代码实现五&#xff1a;效果 一、简介&#xff1a; 你是否有过这样的烦恼&#xff0c;拍出来的照片总是不够清晰&#xff…

【Linux】网络编程套接字Scoket:UDP网络编程

目录 一、了解UDP协议 二、了解端口和IP地址 三、套接字概述与Socket的概念 四、Socket的类型 五、 Socket的信息数据结构 六、网络字节序与主机字节序的互相转换 七、地址转换函数 八、UDP网络编程流程及相关函数 socket函数 bind函数 recvfrom函数 sendto函数 …

UIAbility组件基础(一)

一、概述 UIAbility组件是一种包含UI的应用组件&#xff0c;主要用于和用户交互。UIAbility组件是系统调度的基本单元&#xff0c;为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。 U…

C语言 ——— 学习、使用memmove函数 并模拟实现

目录 memmvoe函数的功能 学习memmove函数​编辑 模拟实现memmove函数 memmvoe函数的功能 memmvoe函数的功能类似于memcpy函数&#xff0c;都是内存拷贝&#xff0c;唯一的区别是memcpy函数不能成功拷贝原数据&#xff0c;而memmvoe函数可以 举例来说&#xff1a; [1, 2, 3…

单元测试注解:@ContextConfiguration

ContextConfiguration注解 ContextConfiguration注解主要用于在‌Spring框架中加载和配置Spring上下文&#xff0c;特别是在测试场景中。 它允许开发者指定要加载的配置文件或配置类的位置&#xff0c;以便在运行时或测试时能够正确地构建和初始化Spring上下文。 基本用途和工…

全国首个数据要素人才标准,亿信华辰携76家单位共同起草

在数字化浪潮汹涌的今天&#xff0c;数据已跃升为社会经济发展的核心引擎。如何精准、高效地评估数据要素领域人才的专业能力&#xff0c;成为了亟待解决的关键议题。亿信华辰积极响应国家战略布局&#xff0c;依托自身在大数据管理与应用领域的深厚底蕴&#xff0c;携手业界76…

CUDA Programming - (1) CUDA简介

1. GPU 简介 处理器一般包含以下几部分&#xff1a;Cache 缓存&#xff0c;ALU 计算单元&#xff0c;Control 控制中心&#xff0c;RAM 内存。 CPU&#xff08;Central Processing Unit&#xff09;&#xff1a;中央处理器。适合进行逻辑&#xff0c;ALU计算核心较少。适合控…

企业源代码加密软件有哪些?2024最好用的十款源代码加密软件

在当今快速发展的技术环境中&#xff0c;企业源代码的安全性至关重要。源代码不仅包含着企业的核心知识产权&#xff0c;还可能涉及敏感的商业数据。因此&#xff0c;选择一款合适的源代码加密软件&#xff0c;对于保护企业资产和避免数据泄露风险至关重要。随着安全技术的不断…

Codeforces Pinely Round 4 (Div. 1 + Div. 2) A~G

A.Maximize the Last Element&#xff08;枚举&#xff09; 题意&#xff1a; 给你一个由 n n n个整数组成的数组 a a a&#xff0c;其中 n n n是奇数。 在一次操作中&#xff0c;你将从数组 a a a中删除两个相邻的元素&#xff0c;然后将数组的剩余部分连接起来。例如&…

git常见命令和常见问题解决

文章目录 常见命令问题问题1&#xff08;git push相关&#xff09;问题2&#xff08;git push相关&#xff09;问题3&#xff08;git push相关&#xff09;删除github的仓库github新创建本地仓库的操作…or create a new repository on the command line…or push an existing …

led台灯对眼睛好不好?揭秘使用护眼台灯能不能有效预防近视

在当前社会&#xff0c;近视的影响不容小视&#xff0c;除了对视觉健康的影响外&#xff0c;近视还可能对个人的心理健康产生负面影响。视力不佳可能导致自卑感和社会交往障碍&#xff0c;尤其是在儿童和青少年时期。保护视力健康要从小做起&#xff0c;家长们可以关注孩子的用…

[openSSL]TLS 1.3握手分析

文章目录 前言一、ECDHE密钥交换二、TLS单向身份认证三、TLS双向身份认证 前言 关于TLS握手网上资料很多&#xff0c;但是有一些写的很不清楚&#xff0c;导致学习时对概念和流程出现混淆&#xff0c;以下是我觉得写得比较清晰和准确的供学习参考。 浅析 TLS&#xff08;ECDHE…

超算互联网-Stable Diffusion 2.1文生图教程

一、名词简介 1. 超算互联网 超算互联网是一种基于云计算的高性能计算平台&#xff0c;用户可以通过互联网接入超级计算资源。它集成了大量的计算节点&#xff0c;提供强大的计算能力&#xff0c;适用于科学计算、深度学习、人工智能等领域。用户可以利用超算互联网平台运行复…

老阳推荐的temu选品师项目能不能做成?

在不断变化的电商领域&#xff0c;temU选品师项目作为一种新兴职业&#xff0c;受到了越来越多的关注。老阳的推荐使得这一项目引起了不少人的兴趣&#xff0c;那么&#xff0c;temU选品师项目究竟能否成功呢?让我们从一个新的角度来探讨这一问题。 新兴市场的机遇与挑战 temU…

基于VEH的无痕HOOK

这里的无痕HOOK指的是不破坏程序机器码,这样就可以绕过CRC或MD5的校验。 VEH利用了Windows的调试机制和异常处理,人为抛出异常,从异常的上下文中获取寄存器信息。 DLL入口 // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" #include "CHoo…

jenkins一键推送到远程服务器并用docker容器启动

1.安装jenkins 我后端使用的是宝塔面板来安装的容器化jenkins,要选中允许外部访问&#xff0c;安装完之后没有那个选项了&#xff0c;一开始安装的时候要选中不使用域名和后面的允许外部访问。Jenkins 版本为&#xff1a; 2.462.1 2.配置Jenkins 2.1 Git plugin 安装完毕之…

100 Exercises To Learn Rust 挑战!构文・整数・变量

前一篇文章 【0】准备 【1】构文・整数・变量 ← 本次全部文章列表 《100 Exercise To Learn Rust》第2回&#xff0c;也就是实际演习的第1回&#xff01;从这次开始&#xff0c;我们会适度减少前置说明&#xff0c;直接进入问题的解决&#xff01; 本次的相关页面 1.1. Syn…

Java:接口interface

文章目录 接口interface好处为什么要用接口 接口案例需求思路代码Student.javaClassManage.javaStudentOperator 接口StudentOperatorImpl1.javaStudentOperatorImpl2.javaTest.java 黑马程序员学习笔记 接口interface 接口中&#xff1a;变量默认为常量&#xff0c;方法默认为…

全网最详细HAProxy入门小知识

目录 一. 负载均衡 负载均衡的意义&#xff1a; 负载均衡的类型&#xff1a; 二. HAProxy 简介 HAProxy 的特点&#xff1a; 社区版和企业版&#xff1a; 三. HAProxy 的安装和服务信息 1、实验环境 1&#xff09;安装并配置 Nginx 2&#xff09;在客户端测试 2、安装…

使用C语言构建Lua库

Lua 本身是用 C 语言编写的&#xff0c;因此使用 C 编写扩展可以更好地与 Lua 引擎集成&#xff0c;减少性能瓶颈&#xff0c;同时C 语言提供了对底层硬件和操作系统功能的直接访问能力&#xff0c;让 Lua 可以通过 C 扩展来实现对文件系统、网络等高级功能的支持。因为C 语言非…