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

NLP_[2]-认识文本预处理

文章目录

  • 1 认识文本预处理
    • 1 文本预处理及其作用
    • 2. 文本预处理中包含的主要环节
      • 2.1 文本处理的基本方法
      • 2.2 文本张量表示方法
      • 2.3 文本语料的数据分析
      • 2.4 文本特征处理
      • 2.5数据增强方法
      • 2.6 重要说明
  • 2 文本处理的基本方法
    • 1. 什么是分词
    • 2 什么是命名实体识别
    • 3 什么是词性标注¶

1 认识文本预处理

1 文本预处理及其作用

  • 文本语料在输送给模型钱一般需要一系列的预处理工作才能符合模型输入的要求,
    • 如将文本转化成模型需要的张量, 规范张量的尺寸等, 而且科学的文本预处理环节还将有效的指导模型超参数的选择 提升模型的评估指标

2. 文本预处理中包含的主要环节

  • 文本处理的基本方法
  • 文本张量表示方法
  • 文本语料的数据分析
  • 文本特征处理
  • 数据增强方法

2.1 文本处理的基本方法

  • 分词
  • 词性标注
  • 命名实体识别

2.2 文本张量表示方法

  • one_hot编码
  • Word2vec
  • Word Embedding

2.3 文本语料的数据分析

  • 标签数量分布
  • 句子长度分布
  • 词频统计与关键词词云

2.4 文本特征处理

  • 添加n-gram特征
  • 文本长度规范

2.5数据增强方法

  • 回译数据增强法

2.6 重要说明

  • 在实际生产应用中 我们最长使用的两种语言是中文和英文 因此文本预处理部分的内容都将都将针对于这两种语言进行

2 文本处理的基本方法

1. 什么是分词

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

  • 举个例子
    我爱我们的国家,我爱北京
    [‘我’,‘爱’,‘我们’,‘的’,‘国家’,‘,’,‘我’,‘爱’,‘北京’]

  • 分词的作用

    • 词作为语言语义理解的最小单元 是人类理解文本语言的基础 因此也是AI解决NLP领域高阶任务 如自动问答 机器翻译 文本生成的重要基础环节
    • 人们中文分词工具jieba:
      • 愿景 ‘结巴’ 中文分词 做最好的Python中文分词组件
    • jieba的特性
      • 支持多种分词模式
        • 精确模式
        • 全模式
        • 搜索引擎模式
      • 支持中文繁体分词
      • 支持用户自定义词典
    • jieba的安装
      pip install jieba
    • jieba的使用
      • 精确模式分词
      • 试图将句子最精确的切开 适合文本分析
import jieba
content = "我爱北京天安门"
# 精确模型:试图将句子最精确地切开,适合文本分析。也属于默认模式
jieba.cut(content, cut_all=False)  # cut_all默认为False# 将返回一个生成器对象# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=False)
['我','爱','北京','天安门']# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=True)
# 注意1:人工智能全模型分成三个词
# 注意2:逗号和句号也给分成了词jieba.cut_for_search(content)# 若需直接返回列表内容, 使用jieba.lcut_for_search即可
jieba.lcut_for_search(content)# 对'无线电'等较长词汇都进行了再次分词.

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

import jieba
content = "煩惱即是菩提,我暫且不提"
jieba.lcut(content)
['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']

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

文件# 格式:word1 freq1 word_type1
爱北 5 nz

import jiebasentence = '我爱北京天安门。'
# 1 没有使用用户自定义词典
mydata = jieba.lcut(sentence, cut_all=False)
print('mydata-->', mydata)# 2 使用用户自定义词典
jieba.load_userdict("./userdict.txt")
mydata2 = jieba.lcut(sentence, cut_all=False)
print('mydata2-->', mydata2)

2 什么是命名实体识别

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

举个例子:

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

==>

鲁迅(人名) / 浙江绍兴(地名)人 / 五四新文化运动(专有名词) / 重要参与者 / 代表作 / 朝花夕拾(专有名词)
命名实体识别的作用:
同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节

3 什么是词性标注¶

词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有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词性对照表

  • 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 
  • hanlp词性对照表:
【Proper Noun——NR,专有名词】【Temporal Noun——NT,时间名词】【Localizer——LC,定位词】如“内”,“左右”【Pronoun——PN,代词】【Determiner——DT,限定词】如“这”,“全体”【Cardinal Number——CD,量词】【Ordinal Number——OD,次序词】如“第三十一”【Measure word——M,单位词】如“杯”【Verb:VA,VC,VE,VV,动词】【Adverb:AD,副词】如“近”,“极大”【Preposition:P,介词】如“随着”【Subordinating conjunctions:CS,从属连词】【Conjuctions:CC,连词】如“和”【Particle:DEC,DEG,DEV,DER,AS,SP,ETC,MSP,小品词】如“的话”【Interjections:IJ,感叹词】如“哈”【onomatopoeia:ON,拟声词】如“哗啦啦”【Other Noun-modifier:JJ】如“发稿/JJ 时间/NN”【Punctuation:PU,标点符号】【Foreign word:FW,外国词语】如“OK

相关文章:

NLP_[2]-认识文本预处理

文章目录 1 认识文本预处理1 文本预处理及其作用2. 文本预处理中包含的主要环节2.1 文本处理的基本方法2.2 文本张量表示方法2.3 文本语料的数据分析2.4 文本特征处理2.5数据增强方法2.6 重要说明 2 文本处理的基本方法1. 什么是分词2 什么是命名实体识别3 什么是词性标注 1 认…...

字符设备驱动开发

驱动就是获取外设、传感器数据和控制外设。数据会提交给应用程序。 Linux 驱动编译既要编写一个驱动,还要编写一个简单的测试应用程序。 而单片机下驱动和应用都是放在一个文件里,也就是杂在一块。而 Linux 则是分开了。 一、字符设备驱动开发流程 Lin…...

c语言:取绝对值

假设我们有一个 long 类型的变量 l&#xff0c;我们希望恢复其绝对值。以下是两种方法的对比&#xff1a; 方法1&#xff1a;使用条件语句 这个很好理解&#xff0c;负数时取负运算 &#xff0c;用于数值的符号反转。 long abs_value(long l) {if (l < 0) {return -l;} e…...

DeepSeek从入门到精通教程PDF清华大学出版

DeepSeek爆火以来&#xff0c;各种应用方式层出不穷&#xff0c;对于很多人来说&#xff0c;还是特别模糊&#xff0c;有种雾里看花水中望月的感觉。 最近&#xff0c;清华大学新闻与传播学院新媒体研究中心&#xff0c;推出了一篇DeepSeek的使用教程&#xff0c;从最基础的是…...

HTML之CSS定位、浮动、盒子模型

HTML之CSS定位、浮动、盒子模型 定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...

LQB(1)-python-各种基础排序

前言 除了内置的快速排序sort()&#xff0c;python也可以实现冒泡排序、选择排序、插入排序、快速排序、归并排序和桶排序。 一、冒泡排序 (Bubble Sort) 基础代码 def bubble_sort(arr):n len(arr)for i in range(n):swapped False # 优化&#xff1a;若本轮无交换则提前…...

解锁国内主流前端与后端框架

前端框架大揭秘 在当今的 Web 开发领域&#xff0c;前端框架的地位愈发举足轻重。随着用户对 Web 应用交互性和体验性要求的不断攀升&#xff0c;前端开发不再仅仅是简单的页面布局与样式设计&#xff0c;更需要构建复杂且高效的用户界面。前端框架就像是一位得力助手&#xf…...

使用OBS推流,srs服务器播放

说明&#xff1a; ffmpeg可以推流&#xff0c;但是是命令行方式不太友好&#xff0c;还可以使用主流的OBS开源推流软件&#xff0c;可从官网Open Broadcaster Software | OBS 下载最新版本&#xff0c;目前很多网络主播都是用它做直播。该软件支持本地视频文件以及摄像头推流。…...

【鸿蒙HarmonyOS Next实战开发】多媒体视频播放-ijkplayer

简介 ijkplayer是OpenHarmony和HarmonyOS环境下可用的一款基于FFmpeg的视频播放器。 演示 下载安装 ohpm install ohos/ijkplayer使用说明 import { IjkMediaPlayer } from "ohos/ijkplayer";import type { OnPreparedListener } from "ohos/ijkplayer";i…...

GRU 和 LSTM 公式推导与矩阵变换过程图解

GRU 和 LSTM 公式推导与矩阵变换过程图解 GRULSTM 本文的前置篇链接: 单向/双向&#xff0c;单层/多层RNN输入输出维度问题一次性解决 GRU GRU&#xff08;Gate Recurrent Unit&#xff09;是循环神经网络&#xff08;RNN&#xff09;的一种&#xff0c;可以解决RNN中不能长期…...

现在中国三大运营商各自使用的哪些band频段

现在中国三大运营商4G和5G频段分配情况&#xff1a; 中国移动 4G频段&#xff1a; TD-LTE&#xff1a; Band 39&#xff1a;1880-1920MHz&#xff0c;实际使用1885-1915MHz。 Band 40&#xff1a;2300-2400MHz&#xff0c;实际使用2320-2370MHz。 Band 41&#xff1a;2515-26…...

使用Jenkins实现鸿蒙HAR应用的自动化构建打包

使用Jenkins实现鸿蒙HAR应用的自动化构建打包 在软件开发领域&#xff0c;自动化构建是提高开发效率和确保代码质量的重要手段。特别是在鸿蒙&#xff08;OpenHarmony&#xff09;应用开发中&#xff0c;自动化构建更是不可或缺。本文将详细介绍如何使用Jenkins命令行工具实现…...

AI时代,职场人如何开启学习之旅

为什么要学习 AI 在当今数字化时代&#xff0c;AI 正以前所未有的速度改变着我们的工作和生活方式。从智能客服到自动化生产&#xff0c;从数据分析到个性化推荐&#xff0c;AI 已经广泛渗透到各个行业和领域。学习 AI&#xff0c;对于工作人员来说&#xff0c;不仅是提升工作…...

MIT6.824 Lecture 2-RPC and Threads Lecture 3-GFS

Lecture 2-RPC and Threads Go语言在多线程、同步&#xff0c;还有很好用的RPC包 《Effective Go》 线程是实现并发的重要工具 在分布式系统里关注多线程的原因&#xff1a; I/O concurrencyParallelismConvenience Thread challenges 用锁解决race问题 Coordination channel…...

MySQL第五次作业

根据图片内容完成作业 1.建表 &#xff08;1&#xff09;建立两个表:goods(商品表)、orders(订单表) mysql> create table goods( -> gid char(8) primary key, -> name varchar(10), -> price decimal(8,2), -> num int); mysql> create t…...

【PDF提取内容】如何批量提取PDF里面的文字内容,把内容到处表格或者批量给PDF文件改名,基于C++的实现方案和步骤

以下分别介绍基于 C 批量提取 PDF 里文字内容并导出到表格&#xff0c;以及批量给 PDF 文件改名的实现方案、步骤和应用场景。 批量提取 PDF 文字内容并导出到表格 应用场景 文档数据整理&#xff1a;在处理大量学术论文、报告等 PDF 文档时&#xff0c;需要提取其中的关键信…...

智慧机房解决方案(文末联系,领取整套资料,可做论文)

智慧机房解决方案-软件部分 一、方案概述 本智慧机房解决方案旨在通过硬件设备与软件系统的深度整合&#xff0c;实现机房的智能化管理与服务&#xff0c;提升机房管理人员的工作效率&#xff0c;优化机房运营效率&#xff0c;确保机房设备的安全稳定运行。软件部分包括机房管…...

【C编程问题集中营】使用数组指针时容易踩得坑

【C编程问题集中营】使用数组指针时容易踩得坑 文章目录 【C编程问题集中营】使用数组指针时容易踩得坑一、获取数组首地址二、应用场景举例2.1 正常场景2.2 异常场景 三、总结 一、获取数组首地址 一维数组的首地址即数组第一个元素的指针&#xff0c;常用的获取一维数组首地…...

【Redis】Linux、Windows、Docker 环境下部署 Redis

一、Linux环境部署Redis 1、卸载 # 查看 Redis 是否还在运行 [appuserlocalhost redis]$ ps -ef|grep redis appuser 135694 125912 0 14:24 pts/1 00:00:00 ./bin/redis-server *:6379 appuser 135731 125912 0 14:24 pts/1 00:00:00 grep --colorauto redis# 停止…...

反函数定义及其推导

文章目录 定义存在条件举例说明总结 反函数是数学中一种特殊的函数&#xff0c;用于“逆转”另一个函数的映射关系。 定义 设有一个函数 f : X → Y f: X \to Y f:X→Y。如果存在一个函数 g : Y → X g: Y \to X g:Y→X&#xff0c;使得对于所有 x ∈ X x \in X x∈X 和 y…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...