NLP基础概念 - HappyLLM

NLP基础概念

什么是NLP?

NLP 是一种让计算机理解、解释和生成人类语言的技术,其核心任务是通过计算机程序来模拟人类对语言的认知和使用过程,结合计算机科学、人工智能、语言学和心理学等多个学科的知识,旨在打破人类语言和计算机语言之间的障碍,实现无缝的交流与互动。

局限性: 处理歧义性、理解抽象概念、处理隐喻和讽刺等。

NLP任务

NLP技术使计算机能够执行各种复杂的语言处理任务,如中文分词、子词切分、词性标注、文本分类、实体识别、关系抽取、文本摘要、机器翻译、自动问答等。

中文分词(Chinese Word Segmentation, CWS): 将连续的中文文本切分成有意义的词汇序列。正如中文语言的词与词之间没有像英文那样的明显分隔(如空格),所以无法直接通过空格来确定词的边界。

1
2
3
4
英文输入:The cat sits on the mat.
英文切割输出:[The | cat | sits | on | the | mat]
中文输入:今天天气真好,适合出去游玩.
中文切割输出:["今天", "天气", "真", "好", ",", "适合", "出去", "游玩", "。"]

子词切分(Subword Segmentation): 旨在将词汇进一步分解为更小的单位,即子词。

  • 适用范围: 处理词汇稀疏问题,当遇到罕见词或未见过的新词时,通过已知的子词单位来理解或生成词汇。

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

1
2
3
4
输入:unhappiness

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

词性标注(Part-of-Speech Tagging,POS Tagging): 为文本中的每个单词分配一个词性标签,进行信息提取、情感分析、机器翻译等更复杂的处理。这个过程通常基于预先定义的词性标签集,如常见标签有名词(Noun,N)、动词(Verb,V)、形容词(Adjective,Adj)等。

  • 适用场景: 词性标注对于理解句子结构、进行句法分析、语义角色标注等高级NLP任务至关重要。

  • 常用方法: 如隐马尔可夫模型(HMM)、条件随机场(CRF)、RNN、LSTM 等。模型通过学习大量标注数据预测句子中每个单词的词性。

1
2
3
She (代词,Pronoun,PRP) 、is (动词,Verb,VBZ) 、playing (动词的现在分词,Verb,VBG)、
the (限定词,Determiner,DT)、guitar (名词,Noun,NN)、in (介词,Preposition,IN)、
the (限定词,Determiner,DT)、park (名词,Noun,NN)、. (标点,Punctuation,.)

文本分类(Text Classification): 将给定文本分配到一个或多个预定义的类别中。

  • 适用场景: 情感分析、垃圾邮件检测、新闻分类、主题识别等。
  • 成功关键: 选择合适的特征表示和分类算法、高质量的训练数据。
1
2
3
4
5
6
7
8
文本:“NBA季后赛将于下周开始,湖人和勇士将在首轮对决。”
类别:“体育”

文本:“美国总统宣布将提高关税,引发国际贸易争端。”
类别:“政治”

文本:“苹果公司发布了新款 Macbook,配备了最新的m3芯片。”
类别:“科技”

实体识别(Named Entity Recognition, NER): 识别文本中具有特定意义的实体,分到对应类别,如人名、地点、日期、时间等。

  • 适用场景: 信息提取、知识图谱构建、问答系统、内容推荐等,用以理解文本中关键元素及其属性;
1
2
输入:李雷和韩梅梅是北京市海淀区的居民,他们计划在2024年4月7日去上海旅行。
输出:[("李雷", "人名"), ("韩梅梅", "人名"), ("北京市海淀区", "地名"), ("2024年4月7日", "日期"), ("上海", "地名")]

关系抽取(Relation Extraction): 从文本中识别实体之间的语义关系,如因果关系、拥有关系、亲属关系、地理位置关系等;

  • 适用场景: 理解文本内容、构建知识图谱、提升机器理解语言的能力等。
1
2
输入:比尔·盖茨是微软公司的创始人。
输出:[("比尔·盖茨", "创始人", "微软公司")] # 从文本中识别出“比尔·盖茨”和“微软公司”之间的“创始人”关系

文本摘要(Text Summarization): 生成一段简洁摘要,概括原文的内容。

  • 抽取式摘要(Extractive Summarization): 从原文中选取关键句子或短语组成摘要。

    • 优点:摘要中的信息完全来自原文,准确性较高。
    • 缺点:仅仅是原文中句子拼接,生成的摘要可能不够流畅。
  • 生成式摘要(Abstractive Summarization): 涉及选择文本片段,并进行重新组织和改写,生成新内容。

    • 特点:理解文本深层含义,以新方式表达相同信息。
    • 常用方法:基于注意力机制的 Seq2Seq 模型。
1
2
3
4
5
原文: 2021年5月22日,国家航天局宣布,我国自主研发的火星探测器“天问一号”成功在火星表面着陆。此次任务的成功,标志着我国在深空探测领域迈出了重要一步。“天问一号”搭载了多种科学仪器,将在火星表面进行为期90个火星日的科学探测工作,旨在研究火星地质结构、气候条件以及寻找生命存在的可能性。

抽取式摘要: 我国自主研发的火星探测器“天问一号”成功在火星表面着陆,标志着我国在深空探测领域迈出了重要一步。

生成式摘要: “天问一号”探测器成功实现火星着陆,代表我国在宇宙探索中取得重大进展。

机器翻译(Machine Translation, MT):

  • 常见方法: 基于神经网络的Seq2Seq模型、Transformer模型等;
1
2
源语言:今天天气很好。
目标语言:The weather is very nice today.

自动问答(Automatic Question Answering, QA): 模拟人类理解和回答问题能力,根据给定数据源提供准确答案,涵盖从简单事实查询到复杂推理和解释。

  • 适用场景: 信息检索、文本理解、知识表示和推理等。
    • 检索式问答(Retrieval-based QA):通过搜索引擎等方式从大量文本中检索答案;
    • 知识库问答(Knowledge-based QA):通过结构化的知识库来回答问题;
    • 社区问答(Community-based QA):依赖于用户生成的问答数据,如问答社区、论坛等。

文本表示

目的: 将人类语言的自然形式转化为计算机可以处理的形式,即文本数据数字化。

适用场景:

  • ①将字、词、短语、句子等及它们之间的关系和结构信息转换为向量、矩阵或其他数据结构。
  • ②文本表示包含足够的语义信息,用于文本分类、情感分析、机器翻译等 NLP 任务;

VSM(Vector Space Model,向量空间模型)

核心思想: 将文本(如单词、句子、段落或整个文档)转换为高维空间中的向量实现文本的数学化表示。

  • 每个维度代表一个特征,向量中的每个元素值代表该特征项在文本中的权重,
  • 权重通过特定计算公式(如词频TF、逆文档频率TF-IDF等)确定,反映特征项在文本中的重要程度。

适用场景: 文本相似度计算、文本分类、信息检索等。

局限性:

  • ①数据稀疏性和维数灾难:特征项多导致大多数元素值为零;
  • ②基于特征项之间的独立性假设,忽略了文本中的结构信息,如词序和上下文信息;
  • ③特征项的选择和权重计算方法不足;

改进方法:

  • ①改进特征表示方法,如借助图方法、主题方法等进行关键词抽取;
  • ②改进特征项权重计算方法,现有方法的基础上进行融合计算或提出新的计算方法。
1
2
3
4
5
6
7
8
# "雍和宫的荷花很美"
# 词汇表大小:16384,句子包含词汇:["雍和宫", "的", "荷花", "很", "美"] = 5个词

vector = [0, 0, ..., 1, 0, ..., 1, 0, ..., 1, 0, ..., 1, 0, ..., 1, 0, ...]
# ↑ ↑ ↑ ↑ ↑
# 16384维中只有5个位置为1,其余16379个位置为0
# 实际有效维度:仅5维(非零维度)
# 稀疏率:(16384-5)/16384 ≈ 99.97%

词汇表是一个所有可能出现的词语集合。

在 VSM 中,每个词对应词汇表中的一个位置,从而将词语转换为向量表示。

N-gram(语言模型)

概念: 一种基于统计的语言模型,应用于语音识别、手写识别、拼写纠错、机器翻译和搜索引擎等众任务。

核心思想: 基于马尔可夫假设,通过条件概率链式规则估计整个句子的概率,即一个词的出现概率仅依赖于它前面的N-1个词。

  • N=1,称为unigram,仅考虑单个词的概率;
  • N=2,称为bigram,考虑前一个词来估计当前词的概率;
  • N=3,称为trigram,考虑前两个词来估计第三个词的概率,以此类推N-gram。
  • 模型计算每个N-gram出现的条件概率,将这些概率相乘以得到整个句子的概率。
    • 以 trigram 模型为例,对于句子“The quick brown fox”,计算 P(“bro wn”|“The”,“quick”)、P(“fox” | “quick”, “brown”)等概率,并将它们相乘。

缺点:

  • ① N 较大时,会出现数据稀疏性问题。

  • ② N 较大时,模型参数空间急剧增大,相同的N-gram序列出现的概率变得非常低。假设词汇表为 V

    • N=2 时,组合数是V2V2V^2 * V^2

    • N=5 时,组合数是V5V5V^5 * V^5

  • ③无法捕捉长距离依赖关系,只能看到前 N-1 个词。

Word2Vec(Word Embedding,词嵌入)

核心思想: 一种基于神经网络的语言模型,通过学习词与词之间的上下文关系生成词的密集向量表示,使语义相似或相关的词在向量空间中距离较近。

架构:

  • ①CBOW(Continuous Bag of Words,连续词袋模型): 根据目标词的上下文词向量, 计算目标词的向量表示;
  • ②Skip-Gram: 利用目标词的向量表示计算上下文中的词向量.
  • CBOW适用于小型数据集,而Skip-Gram在大型语料中表现更好。

优点: 相对于 One-Hot 编码,Word2Vec生成的是低维密集向量,有助于减少计算复杂度和存储需求。

  • ①能捕捉词与词之间语义关系: 如”国王“和“王后”在向量空间中的位置接近,在大量文本中,它们通常出现在相似的上下文中。
  • ②具有较强的泛化能力: 基于上下文信息学习的,具有一定泛化能力。

缺点: 由于 CBOW / Skip-Gram 基于局部上下文,无法捕捉到长距离的依赖关系。

ELMo(Embeddings from Language Models)

核心思想: 首次将预训练思想引入词向量生成中,使用 Bi-LSTM 捕捉到词汇上下文信息,实现一词多义、静态词向量到动态词向量的跨越式转变。

典型的两阶段过程:

  • 第1个阶段: 利用语言模型在大型语料库上预训练;
  • 第2个阶段: 在做特定任务时, 进行微调;

优势: 能捕捉到词汇的多义性和上下文信息,生成的词向量更加丰富和准确。

不足: 模型复杂度高、训练时间长、计算资源消耗大等。