NLP 核心概念与发展
什么是NLP?自然语言处理 Natural Language Processing (NLP) 是一门让计算机能够理解、解释和生成人类语言的技术。
NLP经历了三大阶段的演进:
- 早期基于规则: 依赖人工编写的语法和词典规则。
- 中期统计学习: 使用数学模型(如 N-gram)从数据中学习规律。
- 现代深度学习: 利用神经网络(如 RNN, Transformer)进行端到端的学习,是当前的主流方法。关键模型节点包括 Word2Vec、BERT 和 GPT 系列。
NLP 的核心任务
- 中文分词 (CWS): 将连续的中文句子切分成独立的词语。(例如:"今天天气很好" -> "今天", "天气", "很", "好")
- 子词切分 (Subword Segmentation): 将词语进一步切分为更小的单元,以处理未登录词 (OOV) 问题。(例如:"unhappiness" -> "un", "happi", "ness")
- 词性标注 (POS Tagging): 为每个词标注其语法属性(名词、动词、形容词等)。
- 文本分类 (Text Classification): 为整段文本分配一个预定义的类别(如:新闻分类、情感分析)。
- 实体识别 (NER): 从文本中识别出具有特定意义的实体(如:人名、地名、组织名)。
- 关系抽取 (Relation Extraction): 识别并抽取实体之间的关系(如:“比尔·盖茨”和“微软”之间的关系是“创始人”)。
- 文本摘要 (Text Summarization):
- 抽取式: 直接从原文中摘录关键句子。
- 生成式: 理解原文后,重新组织语言生成新的摘要。
- 机器翻译 (MT): 将文本从一种语言自动翻译成另一种语言。
- 自动问答 (QA): 根据给定的信息源,自动回答用户提出的问题。自动问答大致可分为三类:检索式问答(Retrieval-based QA)、知识库问答(Knowledge-based QA)和社区问答(Community-based QA)。检索式问答通过搜索引擎等方式从大量文本中检索答案;知识库问答通过结构化的知识库来回答问题;社区问答则依赖于用户生成的问答数据,如问答社区、论坛等。
文本数据数字化方法
- 向量空间模型 (VSM): 向量空间模型通过将文本(包括单词、句子、段落或整个文档)转换为高维空间中的向量来实现文本的数学化表示。在这个模型中,每个维度代表一个特征项(例如,字、词、词组或短语),而向量中的每个元素值代表该特征项在文本中的权重,这种权重通过特定的计算公式(如词频TF、逆文档频率TF-IDF等)来确定,反映了特征项在文本中的重要程度。
- 特点: 高维度、极其稀疏(大部分值为0),忽略了词序。
- 方法: One-Hot, TF-IDF。
- N-gram 语言模型: N-gram模型的核心思想是基于马尔可夫假设,即一个词的出现概率仅依赖于它前面的N-1个词。这里的N代表连续出现单词的数量。具体而言,对于给定的一个句子,模型会计算每个N-gram出现的条件概率,并将这些概率相乘以得到整个句子的概率。例如,对于句子“The quick brown fox”,作为trigram模型,我们会计算 P("brown"|"The","quick")、$P("fox" | "quick", "brown")$等概率,并将它们相乘。
- 特点: 考虑了局部词序,但受限于上下文窗口大小,且存在数据稀疏问题。
- 静态词向量 (Word2Vec): Word2Vec的核心思想是利用词在文本中的上下文信息来捕捉词之间的语义关系,从而使得语义相似或相关的词在向量空间中距离较近。Word2Vec模型主要有两种架构:连续词袋模型CBOW(Continuous Bag of Words)是根据目标词上下文中的词对应的词向量, 计算并输出目标词的向量表示;Skip-Gram模型与CBOW模型相反, 是利用目标词的向量表示计算上下文中的词向量. 实践验证CBOW适用于小型数据集, 而Skip-Gram在大型语料中表现更好。
- 特点: 将词映射到低维、稠密的向量空间。能捕捉词的语义关系(如 "国王" - "男人" + "女人" ≈ "王后")。
- 核心问题: 一词一义。一个词(如“苹果”)只有一个固定的向量,无法处理多义词。
- 动态/上下文词向量 (ELMo, BERT): 实现了一词多义、静态词向量到动态词向量的跨越式转变。首先在大型语料库上训练语言模型,得到词向量模型,然后在特定任务上对模型进行微调,得到更适合该任务的词向量。
- 特点: 革命性进步。一个词的向量是根据其上下文动态生成的,真正实现了一词多义。
- 核心思想: 预训练-微调范式。先在海量数据上预训练一个通用语言模型,再针对具体任务进行微调。