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

【NLP自然语言处理】文本处理的基本方法

目录

🍔什么是分词

🍔中文分词工具jieba

2.1 jieba的基本特点

2.2 jieba的功能

2.3 jieba的安装及使用

🍔什么是命名实体识别

🍔什么是词性标注

🍔小结


学习目标

🍀 了解什么是分词, 词性标注, 命名实体识别及其它们的作用.

🍀 掌握如何使用分词工具jieba

🍀 掌握分词, 词性标注, 命名实体识别流行工具的使用方法.

🍔什么是分词

  • 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.

  • 举个例子:

无线电法国别研究

['无线电法', '国别', '研究']

  • 分词的作用:

    • 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
  • 流行中文分词工具jieba:

    • 愿景: “结巴”中文分词, 做最好的 Python 中文分词组件.

🍔中文分词工具jieba

jieba是一个流行的中文分词工具,它能够将一段中文文本切分成有意义的词语。jieba是目前Python中最常用的中文分词库之一,具有简单易用、高效准确的特点。

2.1 jieba的基本特点

高效性:jieba分词基于词典和概率模型,通过对文本进行扫描和统计,实现词汇的切分和标注,具有较高的分词效率。

准确性:jieba分词通过建立词典,为每个词语分配一个概率值,并通过计算相邻词语的联合概率来确定最可能的分词结果。同时,它还采用了隐马尔可夫模型(HMM)来处理一些特殊情况,如新词、未登录词等,提高了分词的准确性。

2.2 jieba的功能

分词:jieba提供了基本的分词功能,可以将中文文本切分成有意义的词语。

词性标注:jieba还提供了词性标注功能,可以对分词结果进行词性标注,帮助用户更好地理解文本内容。

关键词提取:jieba能够从一段文本中提取出最重要的关键词,这对于文本摘要、情感分析等任务非常有用。

实体识别:jieba还可以从文本中识别出人名、地名、组织机构等实体,这对于信息抽取等任务非常有帮助。

灵活性:jieba分词支持多种分词模式,包括精确模式、全模式和搜索引擎模式,以满足不同场景下的需求。此外,用户还可以通过添加自定义词典来指导分词器更好地处理特定词汇,提高分词的准确性。

2.3 jieba的安装及使用

jieba的安装: 

pip install jieba
  • 精确模式分词:
  • 试图将句子最精确地切开,适合文本分析.
import jieba
content = "无线电法国别研究"
jieba.cut(content, cut_all=False)  # cut_all默认为False# 将返回一个生成器对象
<generator object Tokenizer.cut at 0x7f065c19e318># 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=False)
['无线电', '法国', '别', '研究']
  • 全模式分词:
  • 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能消除歧义。
# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=True)['无线', '无线电', '法国', '国别', '研究']
  • 搜索引擎模式分词:
  • 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
import jieba
content = "无线电法国别研究"
jieba.cut_for_search(content)# 将返回一个生成器对象
<generator object Tokenizer.cut at 0x7f065c19e318># 若需直接返回列表内容, 使用jieba.lcut_for_search即可
jieba.lcut_for_search(content)
['无线', '无线电', '法国', '别', '研究']# 对'无线电'等较长词汇都进行了再次分词.
  • 中文繁体分词:
  • 针对中国香港, 台湾地区的繁体文本进行分词。
import jieba
content = "煩惱即是菩提,我暫且不提"
jieba.lcut(content)
['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']
  • 使用用户自定义词典:
  • 添加自定义词典后, jieba能够准确识别词典中出现的词汇,提升整体的识别准确率。
  • 词典格式: 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
  • 词典样式如下, 具体词性含义请参照7 jieba词性对照表, 将该词典存为userdict.txt, 方便之后加载使用。
云计算 5 n
李小福 2 nr
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
import jieba
jieba.lcut("八一双鹿更名为八一南昌篮球队!")
# 没有使用用户自定义词典前的结果:
['八', '一双', '鹿', '更名', '为', '八一', '南昌', '篮球队', '!']jieba.load_userdict("./userdict.txt")
# 使用了用户自定义词典后的结果:
['八一双鹿', '更名', '为', '八一', '南昌', '篮球队', '!']

🍔什么是命名实体识别

  • 命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
  • 顾名思义, 命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.

  • 举个例子:

鲁迅, 浙江绍兴人, 五四新文化运动的重要参与者, 代表作朝花夕拾.

==>

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

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

🍔什么是词性标注

  • 词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.
  • 顾名思义, 词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性.

  • 举个例子:

我爱自然语言处理

==>

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

rr: 人称代词
v: 动词
n: 名词
vn: 动名词

  • 词性标注的作用:

    • 词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
  • 使用jieba进行中文词性标注:

import jieba.posseg as pseg
pseg.lcut("我爱北京天安门") 
[pair('我', 'r'), pair('爱', 'v'), pair('北京', 'ns'), pair('天安门', 'ns')]# 结果返回一个装有pair元组的列表, 每个pair元组中分别是词汇及其对应的词性, 具体词性含义请参照[附录: jieba词性对照表]()

🍔小结

  • 学习了什么是分词:

    • 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.
  • 学习了分词的作用:

    • 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
  • 学习了流行中文分词工具jieba:

    • 支持多种分词模式: 精确模式, 全模式, 搜索引擎模式
    • 支持中文繁体分词
    • 支持用户自定义词典
  • 学习了jieba工具的安装和分词使用.

  • 学习了什么是命名实体识别:

    • 命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
    • 顾名思义, 命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.
  • 命名实体识别的作用:

    • 同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节.
  • 学习了什么是词性标注:

    • 词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.
    • 顾名思义, 词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性.
  • 学习了词性标注的作用:

    • 词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
  • 学习了使用jieba进行词性标注.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • stm32的内部时钟源 | RC震荡电路
  • h5适配iOS——window.open失效
  • win10使用系统自带照片查看器的步骤
  • 电路笔记(信号) : 一个极简的DDS信号发生器
  • 巨魔商店2安装教程,支持最新iOS 17.0的所有型号
  • camera: TypeError: Cannot read properties of undefined reading ‘getUserMedia
  • linux 权限解读
  • 【云计算】什么是云计算服务|为什么出现了云计算|云计算的服务模式
  • 【算法每日一练及解题思路】判断数字是否为偶数
  • 成为一名厉害的黑客,必须知道的12个步骤,黑客入门
  • 斗破C++编程入门系列之二十:数组、指针和字符串:数组的声明和使用(一星斗师)
  • mysql与es数据同步
  • 考拉悠然董事长申恒涛受邀出席2024AGIC深圳通用人工智能大会
  • 视频结构化从入门到精通——行为分析类应用
  • GAMES202——作业4 Kulla-Conty BRDF(BRDF的预计算、重要性采样)
  • 自己简单写的 事件订阅机制
  • 【css3】浏览器内核及其兼容性
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • docker python 配置
  • Linux后台研发超实用命令总结
  • Map集合、散列表、红黑树介绍
  • mysql外键的使用
  • spring boot 整合mybatis 无法输出sql的问题
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 基于组件的设计工作流与界面抽象
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 用简单代码看卷积组块发展
  • 原生js练习题---第五课
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 中文输入法与React文本输入框的问题与解决方案
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​Java并发新构件之Exchanger
  • ### RabbitMQ五种工作模式:
  • #图像处理
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2)STL算法之元素计数
  • (27)4.8 习题课
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (solr系列:一)使用tomcat部署solr服务
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (区间dp) (经典例题) 石子合并
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十)Flink Table API 和 SQL 基本概念
  • (一)SpringBoot3---尚硅谷总结
  • (转)创业的注意事项
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .net web项目 调用webService
  • .NET 材料检测系统崩溃分析
  • .NET/C# 的字符串暂存池