第一章:NLP基础概念

NPL: Natural Language Processing(自然语言处理) 使计算机能够理解和处理人类语言,实现人机交流 从早期的基于规则的方法,到后来的统计学习方法,再到当前深度学习技术的广泛应用 文本表示作为NPL的核心技术之一,对于NPL系统的性能提升具有决定性的作用

1.1 什么是NLP

让计算机理解,解释和生成人类语言的技术.通过计算机程序来模拟热泪对于语言的认知和使用过程,使一门跨多种学科的技术

NLP技术使得计算机能够执行各种复杂的语言处理任务,这些任务不仅要求计算机能够识别和处理语言的表层结构,更重要的是理解语言背后的深层含义,包括语义、语境、情感和文化等方面的复杂因素.

进入深度学习阶段,NLP获得了显著的进步目的,但是NLP仍然面临着大量的挑战没比如:如处理歧义性、理解抽象概念、处理隐喻和讽刺等

1.2 NLP发展历程

规则基础方法->符号注意和统计方法->机器学习和深度学习

早期探索

图灵提出: 他说,如果一台机器可以通过使用打字机成为对话的一部分,并且能够完全模仿人类,没有明显的差异,那么机器可以被认为是能够思考的。

这是判断机器是否能够展现出与人类不可区分的智能行为的测试 同时,诺姆·乔姆斯基提出了生成语法理论 这一时期的机器翻译系统非常简单,主要依赖字典查找和基本的词序规则来进行翻译

符号主义与统计探索

主要分为:符号主义和统计方法两大阵营 符号主义关注形式语言和生成语法 统计方法关注统计与概率方法 1980年代,统计模型开始取代复杂的"手写"规则

机器学习和深度学习

深度学习模型如循环神经网络(Recurrent Neural Network,RNN)、长短时记忆网络(Long Short-Term Memory,LSTM)和注意力机制等技术被广泛应用于 NLP 任务中 Word2Vec模型的提出开创了词向量表示的新时代 2018年.BERT模型引领了预训练语言模型的新浪潮 近年来,基于Transformer

1.3 NLP任务

涵盖了从文本的基本处理到复杂的语义理解和生成的各个方面 核心任务:包括但不限于中文分词、子词切分、词性标注、文本分类、实体识别、关系抽取、文本摘要、机器翻译以及自动问答系统的开发

1.3.1 中文分词(Chinese Word Segmentation, CWS)

中文词与词之间没有明确的分割 中文分词成为了中午文本处理的首要步骤,目的是将连续的中文文本切分成有意义的词汇序列

正确的分词结果对于后续的词性标注、实体识别、句法分析等任务至关重要。如果分词不准确,将直接影响到整个文本处理流程的效果。

1.3.2 字词区分(Subword Segmentation)

子词切分(Subword Segmentation)是 NLP 领域中的一种常见的文本预处理技术,旨在将词汇进一步分解为更小的单位,即子词。

子词切分特别适用于处理词汇稀疏问题,即当遇到罕见词或未见过的新词时,能够通过已知的子词单位来理解或生成这些词汇。子词切分在处理那些拼写复杂、合成词多的语言(如德语)或者在预训练语言模型(如BERT、GPT系列)中尤为重要,例如:

1
2
3
4
输入:unhappiness

不使用子词切分:整个单词作为一个单位,输出:“unhappiness”
使用子词切分(假设BPE算法):单词被分割为:“un”、“happi”、“ness”Copy to clipboardErrorCopied

在这个例子中,通过子词切分,“unhappiness”这个词被分解成了三个部分:前缀“un”表示否定,“happi”是“happy”的词根变体,表示幸福,“ness”是名词后缀,表示状态。即使模型从未见过“unhappiness”这个完整的单词,它也可以通过这些已知的子词来理解其大致意思为“不幸福的状态”。

子词切分的方法有很多种,常见的有Byte Pair Encoding (BPE)、WordPiece、Unigram、SentencePiece等。 这些方法的基本思想是将单词分解成更小的、频繁出现的片段,这些片段可以是单个字符、字符组合或者词根和词缀。

1.3.3 词性标注(Part-of-Speech Tagging,POS Tagging)

它的目标是为文本中的每个单词分配一个词性标签,如名词、动词、形容词等

词性标注通常依赖于机器学习模型,如隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场(Conditional Random Field,CRF)或者基于深度学习的循环神经网络 RNN 和长短时记忆网络 LSTM 等。这些模型通过学习大量的标注数据来预测新句子中每个单词的词性。

1.3.4 文本分类

到将给定的文本自动分配到一个或多个预定义的类别中。这项技术广泛应用于各种场景 关键:文本分类的关键在于理解文本的含义和上下文,并基于此将文本映射到特定的类别 文本分类任务的成功关键在于选择合适的特征表示和分类算法,以及拥有高质量的训练数据 随着深度学习技术的发展,使用神经网络进行文本分类已经成为一种趋势,它们能够捕捉到文本数据中的复杂模式和语义信息

1.3.5 实体识别(Named Entity Recognition, NER)

也称为命名实体类别 旨在自动识别文本中具有特定意义的实体,并将它们分类为预定义的类别

1.3.6 关系抽取(Relation Extraction)

它的目标是从文本中识别实体之间的语义关系。这些关系可以是因果关系、拥有关系、亲属关系、地理位置关系等

1.3.7 文本摘要(Text Summarization)

目的是生成一段简洁准确的摘要,来概括原文的主要内容 根据生成方式的不同,可以分为两大类: 抽取式摘要(Extractive Summarization) :从原文中选取关键句子和短语来组成摘要 优点:信息来自原文,准确 缺点:拼接,不够流畅

生成式摘要(Abstractive Summarization): 选择文本片段,重新组织和改写 更具有挑战性,需要理解文本深层含义并且表达相同的信息

1.3.8 机器翻译(Machine Translation, MT)

指使用计算机程序将一种自然语言(源语言)自动翻译成另一种自然语言(目标语言)的过程

机器翻译不仅涉及到词汇的直接转换,更重要的是要准确传达源语言文本的语义、风格和文化背景等

为了提高机器翻译的质量,研究者不断探索新的方法和技术,如基于神经网络的Seq2Seq模型、Transformer模型等,这些模型能够学习到源语言和目标语言之间的复杂映射关系,从而实现更加准确和流畅的翻译

1.3.9 自动问答(Automatic Question Answering, QA)

旨在使计算机能够理解自然语言提出的问题,并根据给定的数据源自动提供准确的答案 自动问答系统的构建涉及多个NLP子任务,如信息检索、文本理解、知识表示和推理等

自动问答可分为三类: 检索式问答(Retrieval-based QA):通过搜索引擎等方式从大量文本中检索答案 知识库问答(Knowledge-based QA):通过结构化的知识库回答 社区问答(Community-based QA):依赖于用户生成的问答数据

1.4 文本表示的发展历程

文本表示的目的是将人类语言的自然形式转化为计算机可以处理的形式,也就是将文本数据数字化,使计算机能够对文本进行有效的分析和处理。文本表示是 NLP 领域中的一项基础性和必要性工作,它直接影响甚至决定着 NLP 系统的质量和性能。

在 NLP 中,文本表示涉及到将文本中的语言单位(如字、词、短语、句子等)以及它们之间的关系和结构信息转换为计算机能够理解和操作的形式,例如向量、矩阵或其他数据结构。这样的表示不仅需要保留足够的语义信息,以便于后续的 NLP 任务,如文本分类、情感分析、机器翻译等,还需要考虑计算效率和存储效率。

文本表示的发展历程经历了多个阶段,从早期的基于规则的方法,到统计学习方法,再到当前的深度学习技术,文本表示技术不断演进,为 NLP 的发展提供了强大的支持。

1.4.1 词向量

向量空间模型(Vector Space Model, VSM): 是 NLP 领域中一个基础且强大的文本表示方法,最早由哈佛大学Salton提出。向量空间模型通过将文本(包括单词、句子、段落或整个文档)转换为高维空间中的向量来实现文本的数学化表示。在这个模型中,每个维度代表一个特征项(例如,字、词、词组或短语),而向量中的每个元素值代表该特征项在文本中的权重,这种权重通过特定的计算公式(如词频TF、逆文档频率TF-IDF等)来确定,反映了特征项在文本中的重要程度。

应用: 包括但不限于文本相似度计算、文本分类、信息检索等自然语言处理任务

问题: 1.最主要的是数据稀疏性和维数灾难问题:特征项数量庞大导致向量维度极高,同时多数元素值为零 2.此外,由于模型基于特征项之间的独立性假设,忽略了文本中的结构信息,如词序和上下文信息,限制了模型的表现力。 3.特征项的选择和权重计算方法的不足也是向量空间模型需要解决的问题

词汇表: 词汇表是一个包含所有可能出现的词语的集合。在向量空间模型中,每个词对应词汇表中的一个位置,通过这种方式可以将词语转换为向量表示

改进: 1.改进特征表示方法:如借助图方式,主题方式等进行关键词提取 2.改进和优化特征项权重的计算方式

1.4.2 语言模型

N-gram模型:基于统计的语言模型 核心思想:基于马尔可夫假设,即一个词的出现概率仅依赖于它前面的N-1个词 例如: 当N=1时,模型称为unigram,仅考虑单个词的概率;当N=2时,称为bigram,考虑前一个词来估计当前词的概率;当N=3时,称为trigram,考虑前两个词来估计第三个词的概率,以此类推N-gram

N-gram模型通过条件概率链式规则来估计整个句子的概率 对于给定的一个句子,模型会计算每个N-gram出现的条件概率,并将这些概率相乘以得到整个句子的概率, 例如: 对于句子“The quick brown fox”,作为trigram模型,我们会计算 P(“brown”∣“The”,“quick”)P("brown"∣"The","quick")、P(“fox”∣“quick”,“brown”)P("fox"∣"quick","brown")等概率,并将它们相乘

优点:实现简单,容易理解

缺点:N过大出现数据稀疏性问题;参数空间过大,相同的

1.4.3 Word2Vec

通过学习词的上下文关系来生成词的密集向量表示 核心思想:利用词在文本中的上下文信息来捕捉词之间的语义关系,从而使得语义相似或相关的词在向量空间中距离较近 主要有两种架构: Word2Vec模型主要有两种架构:连续词袋模型CBOW(Continuous Bag of Words)是根据目标词上下文中的词对应的词向量, 计算并输出目标词的向量表示;Skip-Gram模型与CBOW模型相反, 是利用目标词的向量表示计算上下文中的词向量. 实践验证CBOW适用于小型数据集, 而Skip-Gram在大型语料中表现更好

优点:向量密集型,减少计算复杂度和存储需求;捕捉词之间的语义关系,可以更好地泛化没见过地词 缺点:基于局部上下文,无法捕捉到长距离的依赖关系

1.4.4 ElMo(Embeddings from Language Models)

实现了一词多义,静态词向量到动态词向量的跨越式转变

分为两个阶段: 第1个阶段是利用语言模型进行预训练; 第2个阶段是在做特定任务时, 从预训练网络中提取对应单词的词向量作为新特征补充到下游任务中

优点:能够捕捉词汇的多义性和上下文信息,生成的词向量也更加丰富准确 缺点:模型复杂度高,训练时间长,计算资源消耗大等等