NLP — 自然语言处理
NLP(Natural Language Processing)是让计算机理解、生成和推理人类语言的技术领域。它是人工智能的核心分支之一,连接了语言学、计算机科学和深度学习三个学科。
为什么需要 NLP?
人类每天产生超过 2.5 百亿亿字节的数据,其中约 80% 是非结构化文本——邮件、文档、社交媒体、客服对话、法律合同、医疗病历。对于计算机而言,这些文本不过是一串字节。没有 NLP,这些数据的价值几乎为零。
具体来说,NLP 解决三大类问题:
- 理解(Understanding):计算机能读懂一段话的意思吗?——机器翻译、情感分析、信息抽取
- 生成(Generation):计算机能写出流畅、有用的文字吗?——对话系统、摘要生成、代码补全
- 推理(Reasoning):计算机能基于文本做逻辑判断吗?——阅读理解、逻辑推理、知识问答
一句话概括:没有 NLP,人机交互就只能停留在点击按钮和填写表单的时代。
核心直觉
想象你是一个只会说数学的外星人。有人给你一本中文小说,你看到的不是故事,而是数百万个汉字排列组合。你不知道"开心"和"快乐"是近义词,不知道"不错"在反讽时意思是"很差"。
NLP 就是教会计算机做三件事:
- 把文字变成数字(Tokenization + Embedding)—— 外星人学会了用数字编码每个汉字
- 理解数字之间的关系(Model / Attention)—— 外星人发现"开心"和"快乐"的数字编码很接近
- 把数字变回文字(Decoding / Generation)—— 外星人用数字重新组合出新的句子
NLP 的本质问题不是"理解语言"——计算机永远不会像人一样"理解"语言。NLP 的问题是:如何在数学上建模语言的统计规律,使机器的输出在统计意义上等价于人类语言行为。
发展脉络
NLP 不是一夜之间冒出来的,它经历了五次范式转移,每一次都重新定义了"什么是可能的":
它是怎么工作的?
现代 NLP 系统的处理流程可以抽象为一个经典 Pipeline。无论底层是 RNN 还是 Transformer,宏观步骤是相似的:
步骤详解
- 分词(Tokenization):将连续文本切分为最小语义单元(token)。中文没有天然的空格分隔,这是中文 NLP 的特有挑战。现代方法多用子词分词(BPE / SentencePiece)。
- 向量化(Embedding):每个 token 被映射到一个高维向量。语义相近的词在向量空间中距离更近。这一步让"语言"变成了"数学"。
- 模型编码(Encoding):Transformer 的多层自注意力机制在 token 之间传递信息,生成融合了上下文的语义表示。这是"理解"发生的地方。
- 输出解码(Decoding):根据任务类型,将编码结果转化为最终输出——分类标签、生成文本、抽取的实体等。
核心任务分解
NLP 不是一个单一任务,而是一个任务谱系。按抽象层级从低到高排列:
| 层级 | 典型任务 | 说明 |
|---|---|---|
| 词级 | 分词、词性标注(POS)、命名实体识别(NER) | 确定每个词的边界和语法角色 |
| 句级 | 句法分析、依存分析、情感分析 | 理解句子结构和态度倾向 |
| 段级 | 文本分类、信息抽取、摘要生成 | 从段落中提取和重组信息 |
| 篇章级 | 机器翻译、阅读理解、对话系统 | 跨句子推理和长程依赖建模 |
| 生成级 | 文本生成、代码生成、创意写作 | 从零生成连贯、有目的的文本 |
在 GPT 等大模型出现后,许多传统独立任务(分词、NER、情感分析)被统一为"序列到序列生成"(Seq2Seq)范式。你不再需要一个专门的情感分析模型——直接让 LLM 判断即可。但这不代表底层能力消失了,而是被编码进了大模型的参数中。
三大技术范式
理解 NLP 的关键,是理解它经历了三种截然不同的"做研究的方式"。这三种范式至今仍有各自的适用场景:
基于规则(Rule-based)
人工编写语法规则 + 词典匹配。代表:正则表达式、专家系统。适合高度结构化的场景(如解析固定格式的日志),但无法处理语言的多样性和歧义性。
1950s - 1980s 主流 | 精确但脆弱
统计学习(Statistical ML)
从数据中自动学习语言模型。代表:TF-IDF、n-gram、SVM、CRF。核心思想:语言是一个随机过程,通过统计规律建模。适合标注数据充足的分类任务。
1990s - 2012 主流 | 数据驱动但浅层
深度学习 / 神经网络(Deep Learning)
端到端学习,从原始文本直接映射到输出。代表:LSTM、Transformer、BERT、GPT。通过海量数据和算力自动发现语言特征。
2013 至今主流 | 强大但需要大量资源
深度学习并不总是更好的。它在数据量足够大、计算资源充足时碾压前两种方法,但对于低资源语言、小样本场景或需要精确控制的工业流水线(如银行合同解析),规则系统 + 统计模型的组合仍然是最可靠的选择。
现代 NLP 技术栈
如果你要在 2026 年构建一个 NLP 应用,你会接触到以下技术层:
| 技术层 | 关键技术 | 代表工具/模型 |
|---|---|---|
| 分词 | BPE, WordPiece, SentencePiece, Unigram | tiktoken, sentencepiece, HuggingFace Tokenizers |
| 词嵌入 | 静态嵌入 (Word2Vec, GloVe) / 上下文嵌入 (BERT) | GloVe, fastText, sentence-transformers |
| 预训练模型 | Encoder-only (BERT), Decoder-only (GPT), Encoder-Decoder (T5) | LLaMA, Qwen, GLM, BERT, T5 |
| 微调方法 | 全参数微调, LoRA, QLoRA, RLHF, DPO | PEFT (HuggingFace), trl, DeepSpeed |
| 推理优化 | 量化 (INT8/INT4), KV Cache, Speculative Decoding | vLLM, llama.cpp, ONNX Runtime, TensorRT-LLM |
| 应用框架 | RAG, Agent, Function Calling, Structured Output | LangChain, LlamaIndex, Semantic Kernel |
三种预训练架构的选择
Encoder-only (BERT)
双向注意力,擅长理解任务。适合文本分类、NER、语义相似度。对生成任务不擅长。
✅ 分类 / 理解任务首选
Decoder-only (GPT)
因果注意力(只能看左侧),擅长生成任务。当前 LLM 的主流架构。适合对话、写作、代码生成。
✅ 生成任务首选,当前最主流
Encoder-Decoder (T5/BART)
联合编码-解码,适合需要同时理解输入和生成输出的任务。如翻译、摘要。
✅ 翻译 / 摘要任务首选
与相关概念的关系
NLP 是整个领域的总称。NLU(自然语言理解)专注于"理解"——分类、抽取、推理。NLG(自然语言生成)专注于"生成"——写作、翻译、对话。可以将 NLP 看作 NLU + NLG 的合集。
CV 处理像素,NLP 处理 token。CV 的输入是连续信号(图像),NLP 的输入是离散符号(文字)。但两者的底层模型架构正在融合——Transformer 同时统治了这两个领域。
NLP 的模型训练、损失函数设计、优化算法都建立在 ML/DL 基础之上。不理解反向传播、梯度下降、过拟合,就无法理解 NLP 模型为什么能工作以及为什么失败。
NLP 的研究成果是 LLM 和 AI Agent 的基石。Tokenizer 来自 NLP 的分词研究,注意力机制来自 NLP 的序列建模,RLHF 来自 NLP 的文本评估研究。LLM 可以视为 NLP 领域的"大一统模型"。
典型应用场景
工业级应用
- 搜索引擎 — 理解用户查询意图,对网页进行语义排序。从关键词匹配(BM25)进化到语义检索(DPR / ColBERT)再到基于 LLM 的 Answer Engine。
- 机器翻译 — Google Translate、DeepL。Transformer 的第一个杀手级应用。当前挑战:低资源语言、实时同声翻译、保留文化语境。
- 智能客服 / 对话系统 — 从规则驱动的 FAQ 机器人进化到基于 LLM 的多轮对话系统。关键指标:意图识别准确率、多轮一致性、幻觉控制。
- 内容审核 — 检测违规内容、垃圾信息、恶意评论。大规模分类任务,要求低延迟、高召回率。
专业领域应用
- 医疗 NLP — 从非结构化病历中抽取诊断、用药、症状。FDA 批准了第一个基于 NLP 的临床决策支持工具。
- 法律 NLP — 合同审查、判例检索、法规合规检查。要求极高的准确率——法律文本的歧义容忍度为零。
- 金融 NLP — 从财报、新闻、社交媒体中提取市场信号。情感分析在量化交易中已有成熟应用。
- 代码智能 — 代码补全(Copilot)、代码审查、Bug 检测。代码是另一种"语言",NLP 技术天然适用。
常见误解与陷阱
LLM 不理解语言的意义,它学习的是 token 之间的统计共现模式。它能说出"苹果是红色的",不是因为知道苹果是什么,而是因为在训练语料中"苹果"和"红色"频繁共现。这种区别在常识推理和幻觉问题上尤为明显。
对于标准 NLP 基准测试(如 GLUE、SuperGLUE),小而精的专用模型(如 DeBERTa)在特定任务上的表现往往优于通用大模型,且推理成本低 10-100 倍。大模型的优势在于泛化能力和零样本能力,而非在所有任务上都最优。
NLP 仍面临根本性挑战:多语言公平性(95% 的 NLP 研究集中在英语和中文)、偏见和歧视(模型会复制训练数据中的社会偏见)、可解释性(我们无法完全解释模型为什么做出某个判断)、以及对 adversarial 攻击的脆弱性。
数据质量比数量更重要。互联网上存在大量低质量、重复、有毒的文本。用这些数据训练的模型会继承这些缺陷。数据清洗、去重、质量过滤是现代 NLP 工程中极其重要但常被低估的环节。
延伸阅读
- 想建立系统认知 → 《Speech and Language Processing》by Jurafsky & Martin(免费在线版,NLP 领域的"圣经")
- 想深入 Transformer 原理 → "Attention is All You Need" 原论文 + The Illustrated Transformer(Jay Alammar 的可视化博客)
- 想理解 LLM 训练流程 → Hugging Face NLP Course(免费,含实战代码)
- 想了解前沿进展 → Papers With Code(NLP 排行榜)、arXiv 的 cs.CL 分类、ACL / EMNLP / NAACL 年会论文
- 想从工程角度实战 → Hugging Face Transformers 库文档 + 《Build a Large Language Model (From Scratch)》by Sebastian Raschka