NLP基础概念

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个单词构成的序列,用于捕捉文本中的局部特征和上下文信息。

相关推荐
喜欢吃豆10 分钟前
OpenAI Realtime API 深度技术架构与实现指南——如何实现AI实时通话
人工智能·语言模型·架构·大模型
数据分析能量站12 分钟前
AI如何重塑个人生产力、组织架构和经济模式
人工智能
wscats1 小时前
Markdown 编辑器技术调研
前端·人工智能·markdown
AI科技星1 小时前
张祥前统一场论宇宙大统一方程的求导验证
服务器·人工智能·科技·线性代数·算法·生活
GIS数据转换器1 小时前
基于知识图谱的个性化旅游规划平台
人工智能·3d·无人机·知识图谱·旅游
EnoYao1 小时前
Markdown 编辑器技术调研
前端·javascript·人工智能
TMT星球2 小时前
曹操出行上市后首次战略并购,进军万亿to B商旅市场
人工智能·汽车
Coder_Boy_2 小时前
Spring AI 源码大白话解析
java·人工智能·spring
启途AI2 小时前
【深度解析】ChatPPT联动Nano Banana Pro:不止生成风格自由,AI创作编辑全链路解锁
人工智能·powerpoint·ppt
数字化转型20252 小时前
SAP Signavio 在风机制造行业的深度应用研究
大数据·运维·人工智能