第一章 NLP 基础概念
来源:「从零开始的大语言模型教程」第一章 NLP基础概念
自然语言处理(Natural Language Processing,NLP)作为人工智能领域的一个重要分支,旨在使计算机能够理解和处理人类语言,实现人机之间的自然交流。从早期的基于规则的方法,到统计学习方法,再到当前深度学习技术的广泛应用,NLP 领域经历了多次技术革新。
1.1 什么是 NLP
NLP 是一种让计算机理解、解释和生成人类语言的技术。它是人工智能领域中一个极为活跃和重要的研究方向,结合了计算机科学、人工智能、语言学和心理学等多个学科的知识和技术,旨在打破人类语言和计算机语言之间的障碍,实现无缝的交流与互动。
NLP 技术使得计算机能够执行各种复杂的语言处理任务,如中文分词、子词切分、词性标注、文本分类、实体识别、关系抽取、文本摘要、机器翻译、自动问答等。
随着深度学习等现代技术的发展,NLP 已经取得了显著的进步。通过训练大量的数据,深度学习模型能够学习到语言的复杂模式和结构,从而在多个 NLP 任务上取得了接近甚至超越人类水平的性能。
1.2 NLP 发展历程
NLP 的发展历程是从早期的规则基础方法,到统计方法,再到现在的机器学习和深度学习方法的演变过程:
- 规则时代:基于人工编写的语法规则和词典
- 统计学习时代:N-gram、HMM、CRF 等统计模型
- 深度学习时代:RNN、LSTM → Word2Vec、ELMo → Transformer → BERT/GPT
1.3 NLP 核心任务
1.3.1 中文分词
中文分词(Chinese Word Segmentation, CWS)是 NLP 领域中的一个基础任务。由于中文语言的特点,词与词之间没有像英文那样的明显分隔(如空格),所以无法直接通过空格来确定词的边界。
英文输入:The cat sits on the mat.
英文切割输出:[The | cat | sits | on | the | mat]
中文输入:今天天气真好,适合出去游玩.
中文切割输出:["今天", "天气", "真", "好", ",", "适合", "出去", "游玩", "。"]
正确分词对于后续任务至关重要,一旦分词错误会直接影响整个处理流程:
输入:雍和宫的荷花开的很好。
正确切割:雍和宫 | 的 | 荷花 | 开 | 的 | 很 | 好 | 。
错误切割 1:雍 | 和 | 宫的 | 荷花 | 开的 | 很好 | 。 (地名被拆散)
错误切割 2:雍和 | 宫 | 的荷 | 花开 | 的很 | 好。 (词汇边界混乱)
1.3.2 子词切分
子词切分(Subword Segmentation)将词汇进一步分解为更小的单位,特别适用于处理词汇稀疏问题(罕见词或未见过的新词)。常见方法有 BPE、WordPiece、Unigram、SentencePiece 等。
输出:unhappiness
不使用子词切分:整个单词作为一个单位:"unhappiness"
使用子词切分(BPE算法):单词被分割为:"un"、"happi"、"ness"
即使模型从未见过 "unhappiness" 这个完整的单词,也可以通过这些已知的子词理解其含义为"不幸福的状态"。
1.3.3 词性标注
词性标注(Part-of-Speech Tagging,POS Tagging)的目标是为文本中的每个单词分配一个词性标签,如名词、动词、形容词等。
例句:She is playing the guitar in the park.
- She(代词,PRP)
- is(动词,VBZ)
- playing(动词的现在分词,VBG)
- the(限定词,DT)
- guitar(名词,NN)
- in(介词,IN)
- park(名词,NN)
词性标注通常依赖于机器学习模型,如 HMM、CRF 或基于深度学习的 RNN/LSTM 等。
1.3.4 文本分类
文本分类(Text Classification)涉及到将给定的文本自动分配到一个或多个预定义的类别中。
文本:"NBA季后赛将于下周开始,湖人和勇士将在首轮对决。"
类别:"体育"
文本:"美国总统宣布将提高关税,引发国际贸易争端。"
类别:"政治"
文本:"苹果公司发布了新款 Macbook,配备了最新的m3芯片。"
类别:"科技"
1.3.5 实体识别
实体识别(Named Entity Recognition, NER)旨在自动识别文本中具有特定意义的实体,并将它们分类为预定义的类别,如人名、地点、组织、日期、时间等。
输入:李雷和韩梅梅是北京市海淀区的居民,他们计划在2024年4月7日去上海旅行。
输出:[("李雷", "人名"), ("韩梅梅", "人名"), ("北京市海淀区", "地名"), ("2024年4月7日", "日期"), ("上海", "地名")]
1.3.6 关系抽取
关系抽取(Relation Extraction)从文本中识别实体之间的语义关系,对于构建知识图谱具有重要意义。
输入:比尔·盖茨是微软公司的创始人。
输出:[("比尔·盖茨", "创始人", "微软公司")]
1.3.7 文本摘要
文本摘要(Text Summarization)分为两类:
- 抽取式摘要:直接从原文中选取关键句子。优点是准确性高,缺点是可能不够流畅。
- 生成式摘要:不仅选择文本片段,还需要重新组织和改写,生成新的内容。更具挑战性,通常需要基于注意力机制的 Seq2Seq 模型。
原文:
2021年5月22日,国家航天局宣布,我国自主研发的火星探测器"天问一号"成功在
火星表面着陆。此次任务的成功,标志着我国在深空探测领域迈出了重要一步。
抽取式摘要:
我国自主研发的火星探测器"天问一号"成功在火星表面着陆,标志着我国在深空探测领域迈出了重要一步。
生成式摘要:
"天问一号"探测器成功实现火星着陆,代表我国在宇宙探索中取得重大进展。
1.3.8 机器翻译
机器翻译(Machine Translation, MT)指使用计算机程序将一种自然语言(源语言)自动翻译成另一种自然语言(目标语言)的过程。
源语言:今天天气很好。
目标语言:The weather is very nice today.
1.3.9 自动问答
自动问答(Automatic Question Answering, QA)旨在使计算机能够理解自然语言提出的问题,并根据给定的数据源自动提供准确的答案。
大致可分为三类:
- 检索式问答:通过搜索引擎等方式从大量文本中检索答案
- 知识库问答:通过结构化的知识库来回答问题
- 社区问答:依赖于用户生成的问答数据
1.4 文本表示的发展历程
文本表示的目的是将人类语言的自然形式转化为计算机可以处理的形式——将文本数据数字化,使计算机能够对文本进行有效的分析和处理。
1.4.1 向量空间模型(VSM)
向量空间模型(Vector Space Model, VSM)最早由哈佛大学 Salton 提出,通过将文本转换为高维空间中的向量来实现文本的数学化表示。
每个维度代表一个特征项(词),而向量中的每个元素值代表该特征项在文本中的权重(通过词频 TF、逆文档频率 TF-IDF 等计算)。
# "雍和宫的荷花很美"
# 词汇表大小:16384,句子包含词汇:["雍和宫", "的", "荷花", "很", "美"] = 5个词
vector = [0, 0, ..., 1, 0, ..., 1, 0, ..., 1, 0, ..., 1, 0, ..., 1, 0, ...]
# ↑ ↑ ↑ ↑ ↑
# 16384维中只有5个位置为1,其余16379个位置为0
# 稀疏率:(16384-5)/16384 ≈ 99.97%
主要问题:数据稀疏性和维数灾难问题,忽略了词序和上下文信息。
1.4.2 语言模型(N-gram)
N-gram 模型是一种基于统计的语言模型,核心思想是基于马尔可夫假设:一个词的出现概率仅依赖于它前面的 N-1 个词。
- Unigram(N=1):仅考虑单个词的概率
- Bigram(N=2):考虑前一个词来估计当前词的概率
- Trigram(N=3):考虑前两个词来估计第三个词的概率
N-gram 的优点是实现简单、容易理解,在许多任务中效果不错。但当 N 较大时,会出现数据稀疏性问题,且无法捕捉长距离依赖关系。
1.4.3 Word2Vec
Word2Vec 是一种流行的词嵌入(Word Embedding)技术,由 Tomas Mikolov 等人在 2013 年提出。它通过学习词与词之间的上下文关系来生成词的密集向量表示。
两种架构:
- CBOW(Continuous Bag of Words):根据目标词上下文中的词预测目标词的向量表示。适用于小型数据集。
- Skip-Gram:利用目标词的向量表示预测上下文中的词向量。在大型语料中表现更好。
优点:
- 生成低维(通常几百维)的密集向量,减少计算复杂度
- 能够捕捉到词与词之间的语义关系("国王"和"王后"在向量空间中位置接近)
- 可以很好地泛化到未见过的词
局限性:基于局部上下文,无法捕捉长距离的依赖关系,在复杂语义任务上表现不佳。
1.4.4 ELMo:预训练时代的开端
ELMo(Embeddings from Language Models)实现了一词多义、静态词向量到动态词向量的跨越式转变。
两阶段过程:
- 在大型语料库上训练语言模型,得到词向量模型
- 在特定任务上对模型进行微调,得到更适合该任务的词向量
ELMo 首次将预训练思想引入到词向量的生成中,使用双向 LSTM 结构,能够捕捉到词汇的上下文信息,生成更加丰富和准确的词向量表示。
主要优势:能够捕捉到词汇的多义性和上下文信息,适用于多种 NLP 任务。
局限:基于 RNN 的 LSTM 模型训练时间长,计算资源消耗大。
文本表示发展总结
| 方法 | 年代 | 核心思想 | 优点 | 局限 |
|---|---|---|---|---|
| VSM/One-Hot | 1970s~ | 词袋模型,高维稀疏向量 | 简单直接 | 高维稀疏,忽略语义 |
| N-gram | 1980s~ | 基于统计的语言模型 | 简单有效 | 数据稀疏,无长程依赖 |
| Word2Vec | 2013 | 神经网络学习词嵌入 | 低维密集,捕捉语义 | 静态向量,一词一义 |
| ELMo | 2018 | 双向LSTM,上下文词向量 | 动态语义,预训练思想 | 训练慢,RNN顺序依赖 |
| BERT/GPT | 2018~ | Transformer,大规模预训练 | 强大的上下文理解 | 参数量大,推理慢 |