Task02:第一章 NLP 基础概念

(这是笔者自己的学习记录,仅供参考,原始学习链接,愿 LLM 越来越好❤)


NLP 自然语言处理

顾名思义就是处理人类语言的,把人类的语言用某种方式让计算机理解,理解之后便能进行一些处理和上操作。计算机能够用底层的0101模拟出人类的语言后,人们就开始整活,让他做事了,比如中文分词等,这里面可能会涉及语义、语境、情感、文化等。所以一直以来,大家都在不断改进算法方法来使计算机更能理解人类语言,从而达到对人类的语言数据进行一些处理。


NLP 的发展历程

  1. 基于 规则 进行处理:主要做翻译任务,给计算机字典和词序规则,让他查。
  2. 基于 统计 概率进行处理:统计模型,机器学习
  3. 基于 深度学习 模型:主要的比如 RNN、LSTM、Word2Vec、BERT、Transformer

NLP 的一些任务(人类都让它整了哪些活儿)

1、中文分词(Chinese Word Segmentation)

基础任务。中文不像英文空格是一个词,中文有字和词的概念。所以处理中文文本,首先就是要进行分词,分的好意味着理解的好和正确,对后续的整活很关键。

2、子词切分(Subword Segmentation)

是常见的文本预处理技术。像英文就是再把词分成前后缀,以后遇到没见过的可能有举一反三的能力。
例如:unhappiness = un-happy-ness
常见的方法:Byte Pair Encoding (BPE)、WordPiece、Unigram、SentencePiece 等

3、词性标注(Part-of-Speech Tagging)

基础任务。就是标注词性。n、v、adj、adv 这种,对理解语义很重要。通常是用机器学习模型,从标注数据里学一学就会了。
常见的 ML 模型:隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场(Conditional Random Field,CRF)
常见的 DL 模型:RNN、LSTM

4、文本分类(Text Classification)

核心任务。分类任务,就是给文本你把这个话分到某个领域类别中,如教育、医疗、财经这些类。机器学习比较多,挺简单的,主要就是要选合适的特征表示和分类算法,训练的数据也很重要。但是现在深度学习变成趋势了。

5、实体识别(Named Entity Recognition)

关键任务。就是给文本,他能从长句子里面提取各种类别的信息,这就是实体,比如里面说的人、地名、时间这种。比文本分类更细,文本可能看见关键词就分类了。

6、关系抽取(Relation Extraction)

关键任务。在实体识别的基础上,能够理解实体之间的关系,比如从属、因果等。

7、文本摘要(Text Summarization)

重要任务。把长文本进行内容概括,

  • 抽取式摘要:(优点)摘要内容全是来自原文,准确性比较高。(缺点)可能不通畅。
  • 生成式摘要:对内容进行重新组合改写,更难,需要如 Seq2Seq 的模型。

8、机器翻译(Machine Translation)

核心任务。就是不同语音之间进行翻译,重点是转化、准确、风格、文化因素。

9、自动问答(Automatic Question Answering,QA)

高级任务。理解人给的问题并回答,这涉及了很多子任务(信息检索、文本理解、知识表示和推理等)

有 3 类:

  • 检索式问答:就是搜索出答案。
  • 知识库问答:基于知识库结构化内容检索出答案。
  • 社区问答:基于用户的论坛 csdn 啥的。

文本表示是什么?

目的是用计算机能处理的方式表示自然语言,文本数据数字化。(字、词、短语、句子)表示形式可能有(向量、矩阵或其他数据结构)


文本表示的发展历程

1、词向量 —— 向量空间模型 VSM

是文本表示的方法。

VSM 做什么的?

  • 文本变高维向量,每一维是特征项(字、词、短语),值(通过公式计算得到,如 TF 词频、TF-IDF 逆文档频率)是代表特征项的权重 = 在文本中的重要程度。

VSM 变换的优化方法?

  • 改进特征 表示 方法:图方法、主题方法
  • 改进特征项 权重计算 方法:如用矩阵运算(特征值计算、奇异值分解等方法),提升效率和效果。

VSM 的问题?

  • 数据稀疏性 + 维数灾难
  • 特征项选择
  • 权重计算方法

(有个词汇表大小就是一个词的向量维数,该词的向量表示就是,词汇表中他的位置值为 1,其他 0,所以很浪费。)


2、N-gram 语言模型

是基于统计条件概率的模型。基于马尔可夫假设,现在这个词的出现概率依赖前 N-1 个词(N 是正整数,具体前几个词也不一定。
N=1 是 unigram 模型、N=2 bigram、N=3 trigram,就是前两个词出现的情况下,这个词出现的概率)

N-gram 做什么的?

  • 可以计算这个词的出现概率
  • 或者从后往前推算概率连乘,计算整个句子的

N-gram 的优点?

  • 易理解简单

N-gram 的问题?

  • N 大时,出现推理时某些概率太低
  • 数据稀疏性问题,就是训练语料中没出现过的词序组合,泛化能力低
  • 忽略了远距离词之间的关系

3、Word2Vec 语言模型

是一种词嵌入技术,2013 年提出的。

两种架构:

  • CBOW 连续词袋模型(适合小数据集):根据目标词的上下文词的词向量计算这个词的词向量。
  • Skip-Gram 模型(适合大数据集):先有目标词的词向量,预测周围词的词向量,训练过程中不断优化“吃”的向量,使它能更好地预测这些上下文词。

模型学什么的?

  • 用神经网络 NNLM 学词在文本中的词之间的语义关系,使得语义相似或相关的词在向量空间距离就近

Word2Vec 是做什么的?

  • 把语言转成低维(几百维)的密集向量,减少计算复杂度和存储
  • 能捕捉词与词的语义关系
  • 生成静态词向量

和 VSM 比的优势是?

  • W2V 基于上下文学,不是基于词典,泛化能力好点

W2V 的问题是?

  • 两种架构都是基于局部上下文的,长距离不行。

4、ELMo

Embedding from LM,是一种融入预训练方法到词向量表示的思路,生成动态词向量,实现词向量的准确表示(同一个词不同语境不同表示向量)

ELMo 是怎么做的?

  • 先获得词向量模型(用基于 RNN 的双向 LSTM 结构在大型语料库训)
  • 再在特定任务微调,从预训练模型提取词向量作为特征调整。

ELMo 的优势是什么?

  • 能捕捉词在不同语境上下文的多义

ELMo 的问题是什么?

  • 模型复杂度高
  • 训练时间长
  • 计算资源消耗大

(牛逼模型的通病吧)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐