NLP基础概念

news2024/10/23 22:31:56

        NLP任务不同于CV任务,它存在更多难点,例如:

        数据表示:NLP任务处理的是文本数据,需要将自然语言文本转化为计算机可处理的形式,即如何把字符串变为数值数据,常用的有词嵌入(Word Embedding),而CV任务处理的图像,天然是数值形数据。

        上下文依赖:文本具有丰富的上下文依赖性,单个词或短语的含义可以依赖于其周围的上下文,这使得NLP任务在理解和处理上更具挑战性。

         长期依赖:文本序列可能非常长,并且存在长期依赖性,需要模型能够捕捉长距离的上下文信息。

        多义性和歧义性:语言中存在多义词和歧义性,需要根据上下文来进行准确理解和推断。

         由于NLP任务存在诸多难点,因此在正式开始前,需要对NLP基础概念进行说明。

         首先介绍NLP数据处理基础流程,然后介绍各式各样的NLP任务,最后总结NLP基础概念名词。

1.NLP任务处理流程

          以电影影评文本分类为例,流程可分为以下几个步骤:

        (1)数据清洗和预处理:去除无关字符、标点符号、HTML标签、去除停用词等,目的是得到具备真实语义的文本序列。

        (2) 分词:将文本序列划分为“具备独立语义“的词元(token),每个token是基本单位。英文中通常用空格可区分,而中文常需要特定的分词方法。例如,“这电影不错。”可划分为["这", "电影", "不", "错", "。"],或者将每个字符划分, ["这", "电", "影", "不", "错", "。"]。具体要如何分词,这需要根据任务以及模型的能力决定,对于BERT这样的模型, 或许以及学会了分词、组词的能力,只需要逐个字输入即可。

        (3)构建词表:词表(Vocabulary)是个字典,作用是将词元(token)映射到整数索引,例如[('', 0), ('the', 1), ('i', 2), ('and', 3)...]。词表将文本数据中的词元(token)映射为对应的标识符(通常是正整数),然后使用词嵌入模型将这些标识符转化为对应的词向量表示。

        (4) 词嵌入:模型运算需要的是数值型数据,因此需要一个映射,将字符映射到向量,这个向量可理解为特征向量/词向量,这个映射过程称为词嵌入(word embedding)。词嵌入是个复杂问题,需要的约束较多。例如,语义相近的词元(token)的特征向量要接近,即余弦距离要小。目前常采用已经预训练好的词嵌入模型,如word2vec, GloVe, FastText等。

        ( 5)算法模型:NLP模型通常是序列模型,即可处理多个词向量输入,然后根据任务类型进行输出,如文本分类则最终输出一个分类概率向量,翻译任务则输出一些列分类概率向量,向量个数是文本单词/词元个数,概率向量的长度是词表大小,即把单词的输出转换为单词分类,只能在词表中选一个最有可能词进行输出。

2.NLP常见任务

        与CV任务不同,NLP任务繁多,需要归纳总结,逐个分析。

        下面借助台大李宏毅老师2021年NLP课程的内容,梳理NLP主要内容。 详细内容参见:http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

        NLP任务细分有十多种大类,小类有几十种,但整体归纳下来可概括为两种类型,分别是seq2cls和seq2seq。

        seq2cls:输入是序列,输出是类别,根据输出数量又可分序列级分类和token级分类。文本分类就是序列级,词性标注就是token级。

        seq2seq:输入是序列,输出也序列,例如机器翻译、文章摘要、问答系统、阅读理解等任务都是seq2seq的。

        下面对常见的NLP任务进行一句话概括。

        词性标记,Part-of-Speech(POS) Tagging:seq2cls, 为每个token输出一个类别,在早期NLP模型中,作为预处理,将词性和文本输入到下游模型中,期望通过词性信息提升模型能力。         分词,word segmentation:seq2cls,将文本序列切分开,英文有空格进行切分,中文则需要分词,文本序列切分为多个token。

         指代消解,coreference resolution:将同一个东西(entity)的不同表达识别出来,给下游任务额外的提示信息。

         情感分析,sentiment classification:seq2cls,将整个文本进行输出一个类别,常用于影评、社交媒体评论的分类。

        舆情分析(立场检测),Stance Detection:seq+seq 2 cls,常分为4类:Many systems use the Support, Denying, Querying, andCommenting (SDOC) labels for classifying replies。

        机器翻译, machine translation:seq2seq,很好理解,两种语言之间的转换,典型的seq2seq 任务。

        文本摘要,summarization:抽取式(Extraction-based),seq2cls。为原文中逐个token进行二分类,保留/不保留, 最终输出保留的token(单词/句子)。

         文本摘要,summarization:生成式(Abstraction-based),seq2seq。将原文进行理解、编码,再经解码器输出总结的内容。类似机器翻译,输出的是NxM的概率向量矩阵。N是token数量,M是词表中词的数量。

        问答系统:seq2seq,输入问题,输出答案,进阶版问答系统还具备“记忆”能力,能根据上下文进行回答,这就变为对话系统。

        命名实体识别,NER(Name Entity Recognition):seq2cls,将文本中的实体(如人名、地名、组织名)进行标注和分类,将每个token分类为实体类型或非实体类型。

        关系抽取,Relation Extraction:seq2seq,旨在从文本中提取出实体之间的关系。输入是包含两个实体的句子以及两个实体,输出是描述这两个实体关系的标签或文本。

        自然语言推理 Natural Language Inference (NLI):seq2cls,推理模型的文本输入:premise(前提) + hypothesis(假 设) ,模型输出:对假设是否成立的判断结果,矛盾/包含(可推得)/中立(contradiction/entailment/neutral)。

3.NLP基础概念

        以上是对一个样本推理过程涉及的几个关键步骤进行了介绍,在训练过程中组batch可能还会涉及连接词、填充词的预处理,这里暂不作说明。 下面总结一些NLP中常用的概念名词,便于理解任务。

        (1)词表(Vocabulary):文本数据集中出现的所有单词的集合。

        (2)语料库(Corpus):用于NLP任务的文本数据集合,可以是大规模的书籍、文章、网页等。

        (3)词嵌入(Word Embedding):将单词映射到低维连续向量空间的技术,用于捕捉单词的语义和语法信息。

        (4)停用词(Stop Words):在文本处理中被忽略的常见单词,如"a"、"the"、"is"等,它们通常对文本的意义贡献较 小。

        (5)分词(Tokenization):将文本分割成一个个单词或标记的过程,为后续处理提供基本的单位。

        (6) 词频(Term Frequency):在给定文档中,某个单词出现的次数。

        (7)逆文档频率(Inverse Document Frequency):用于衡量一个单词在整个语料库中的重要性,是将词频取倒数并取 对数的值。

        (8) TF-IDF(Term Frequency-Inverse Document Frequency):一种常用的文本特征表示方法,综合考虑了词频和逆文档频率。

         (9) 词袋模型(Bag of Words):将文本表示为一个单词的集合,忽略了单词的顺序和语法结构。

        (10)N-gram:连续的N个单词构成的序列,用于捕捉文本中的局部特征和上下文信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20240621 每日AI必读资讯

🤖GPT-4 通过图灵测试!! 研究人员称人们在图灵测试中无法区分 GPT-4 和人类,圣地亚哥加州大学认知科学系的研究人员针对GPT 4复刻了图灵测试。 研究人员招募了500名参与者,与四个代理人:人类、1960年代的…

英伟达和IBM搞事情!主攻“量子计算+AI”

内容来源:量子前哨(ID:Qforepost) 文丨娴睿/慕一 排版丨沛贤 深度好文:2000字丨8分钟阅读 Ismael Faro是一位计算机工程师,自2015年以来,他就成为开发IBM量子软件生态系统的重要人物。从2016…

Debugger的使用

断点调试 1.打断点 2.以debug模式运行 3.流程控制

一款Wordpress网站导航主题,带昼夜切换功能

Wordpress网站导航主题,带昼夜切换功能。 基于wordpress,部署和使用都比较方便。 界面比较简洁大方。后台管理功能也比较全面,值得一试。 这款主题界面、功能都非常简洁。 作者把这款定位为简约导航主题,所以这款wordpress导航…

61.WEB渗透测试-信息收集- WAF、框架组件识别(1)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:60.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(8) WAF的识…

西米支付:【风控升级】同一商户集中交易,将会限制正常用卡

支付公司风控策略再升级!近日,有某支付公司代理透漏,客户反馈机器突然不能刷卡了,换卡也无法交易,交易均提示06-超出商户限额,然而该款机器刷卡限额为单日30万,单月300万,客户并未触…

使用MyBatisPlus进行字段的自动填充

使用MyBatisPlus进行字段的自动填充 需求场景 当我们往数据库里面插入一条数据,或者是更新一条数据时,一般都需要标记创建时间create_time和更新时间update_time的值,但是如果我们每张表的每个请求,在执行sql语句的时候我们都手…

arco design表单label和输入框的空间分布

表单空间分布 arco利用的栅格系统来实现label、input的大小分布 <a-form :model"formData.form" :label-col-props"{ span: 6 }" :wrapper-col-props"{ span: 18 }" >// 其它...... </a-form>栅格系统中&#xff0c;默认空间总量2…

web 腾讯地图怎么设置卫星底图??

引用腾讯地图JavaScript SDK (腾讯地图引用文档) 设置卫星底图代码如下&#xff1a;官网示例 new TMap.Map("container", {// zoom: 16, //设置地图缩放级别zoom: 17.2, //设置地图缩放级别center: new TMap.LatLng(lat, long), //设置地图中心点坐标pitch: 35, //…

OZON彩妆热销产品,OZON热销化妆品

在当今的电商时代&#xff0c;OZON平台以其卓越的服务和丰富的产品种类&#xff0c;成为了众多消费者和美妆爱好者的首选。特别是在彩妆领域&#xff0c;OZON平台上的热销产品不仅满足了消费者的多样化需求&#xff0c;更引领了美妆新潮流。本文将为您详细解读OZON彩妆热销产品…

Matlab个性化绘图第3期—带三维球标记的折线图

前段时间有会员在群里问该如何绘制下面这种带三维球标记的折线图&#xff1a; 本期内容就来分享一下带三维球标记的折线图的Matlab绘制思路。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需…

Arduino平台软硬件原理及使用——无源蜂鸣器模块的使用

文章目录 一、蜂鸣器发声原理 二、无源蜂鸣器与有源蜂鸣器的区分 三、无源蜂鸣器模块在Arduino中的使用 一、蜂鸣器发声原理 上图为常见的不同封装及规格的蜂鸣器。 同蜜蜂、知了等昆虫发声原理一样&#xff0c;蜂鸣器同样靠振动来发出声音&#xff1b; 如上图为无源蜂鸣器的内…

【比较版本号】

比较版本号 一、题目二、方法一&#xff1a;s.split()parseInt()三、方法二&#xff1a;优化空间复杂度——双指针四、补充&#xff1a;charCodeAt()函数 一、题目 二、方法一&#xff1a;s.split()parseInt() 使用split将版本号的字符串拆分为数组&#xff0c;再将数组中的每一…

c#考试知识点

第一题 //数组{1&#xff0c;2&#xff0c;3&#xff0c;&#xff0c;8&#xff0c;6} //方法&#xff08;数组&#xff0c;目标值&#xff09; //输出 //接收一个数组&#xff0c;输出目标值是数组中哪两个数的和&#xff0c;并输出下标 using System; using System.Collectio…

从零开始学代码写了一个心理学知识导航站

我从零编码经验开始开发一个网站。最初我只是想把自己收集到的心理学知识和一些资源分享出来&#xff0c;希望能够让更多的用户受益。 然而&#xff0c;在写作时&#xff0c;我意识到&#xff0c;尽管函数和界面是使用 GPT 从头开始​​手工编写的&#xff0c;而且我没有使用所…

Vite文件目录结构介绍

我们通过命令create-vite shop-admin基于Vite创建vue3项目后&#xff0c;其默认的文件目录结构如下&#xff1a; shop-admin ├─ index.html ├─ package-lock.json ├─ package.json ├─ public │ └─ vite.svg ├─ src │ ├─ App.vue │ ├─ assets │ │ └…

Codeforces Global Round 26 F. Reconstruction(枚举+dp)

题目 Problem - F - Codeforces 思路来源 稲葉廻代码 题解 前面补一个0&#xff0c;字母对应P&#xff0c;后面补一个0&#xff0c;字母对应S 中间必有一个分界处是PS相邻&#xff0c; PS相邻一个是前缀和一个是后缀和&#xff0c;就可以唯一确定这个序列的和 枚举这个…

Vue3 【仿 react 的 hook】封装 useTitle

效果预览 页码加载时&#xff0c;自动获取网页标题通过input输入框&#xff0c;可以实时改变网页标题 代码实现 index.vue <template><h1>网页的标题为&#xff1a; {{ titleRef }}</h1><p>通过input输入框实时改变网页的标题 <input v-model"…

厂里教务之延迟任务精准发布文章

延迟任务精准发布文章 延迟任务概述 什么是延迟任务 定时任务&#xff1a;有固定周期的&#xff0c;有明确的触发时间 延迟队列&#xff1a;没有固定的开始时间&#xff0c;它常常是由一个事件触发的&#xff0c;而在这个事件触发之后的一段时间内触发另一个事件&#xff0c…

短视频开源项目MoneyPrinterTurbo:AI副业搞起来,视频制作更轻松!

目录 引言一、MoneyPrinterTurbo简介二、MoneyPrinterTurbo的核心功能三、MoneyPrinterTurbo的未来发展四、MoneyPrinterTurbo与AI副业五、部署实践1、克隆代码2、创建虚拟环境3、安装依赖4、安装好 ImageMagick5、端口映射6、启动Web界面7、模型配置8、填写主题9、视频生成10、…