当前位置: 首页 > news >正文

【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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • java之如何爬取本地数据(利用正则表达式)
  • C语言 ——— 学习并使用memcmp函数
  • Docker-容器修改
  • 【机器学习】神经网络通过梯度下降学习的步骤以及前向传播的详细步骤
  • Mac终端 shell脚本打包iOS,发现没有生成DSYM文件
  • L1 - OpenCompass 评测 InternLM-1.8B 实践
  • 编程-设计模式 13:责任链模式
  • Conda的自动化魔法:一探auto_activate_base的奥秘
  • Redis 为什么读写性能高?
  • 【Android Git】Git版本回退方式
  • 为啥说SPFA已死?三种图论算法太难懂?深入浅出谈图论,看这篇文章就够了
  • docker系列11:Dockerfile入门
  • Java | Leetcode Java题解之第332题重新安排行程
  • JAVA开发学习-day21
  • 【sdk】- 对接阿里云抠图
  • Google 是如何开发 Web 框架的
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android Volley源码解析
  • ComponentOne 2017 V2版本正式发布
  • Java Agent 学习笔记
  • JavaScript类型识别
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Linux CTF 逆向入门
  • Netty源码解析1-Buffer
  • Promise面试题,控制异步流程
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • ubuntu 下nginx安装 并支持https协议
  • 基于游标的分页接口实现
  • 解析带emoji和链接的聊天系统消息
  • 蓝海存储开关机注意事项总结
  • 前端相关框架总和
  • 强力优化Rancher k8s中国区的使用体验
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 思考 CSS 架构
  • 提醒我喝水chrome插件开发指南
  • 小程序测试方案初探
  • 再谈express与koa的对比
  • - 转 Ext2.0 form使用实例
  • ​Linux·i2c驱动架构​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (007)XHTML文档之标题——h1~h6
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (第30天)二叉树阶段总结
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)丶RabbitMQ的六大核心
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (源码分析)springsecurity认证授权
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版