直接答案:自然语言处理(Natural Language Processing,NLP)是研究和构建“让计算机处理、分析、理解与生成人类语言”的方法与系统。它覆盖文本和语音,从分词、分类、信息抽取、检索、翻译、摘要到对话生成。大语言模型(LLM)是 NLP 中基于大规模预训练语言模型的一类技术,不等于全部 NLP,也不能替代任务定义、数据治理、评价、错误分析和生产监控。
本文面向希望读懂 NLP 概念或启动中文文本项目的读者。主要参考 Stanford 2026 年版《Speech and Language Processing》在线手稿、Unicode 规范、原始论文和公开评测框架;资料复核日期为 2026 年 7 月 19 日。
NLP、NLU、NLG、语言模型和 LLM 有什么区别
| 术语 | 范围 | 例子 | 容易混淆的地方 |
|---|---|---|---|
| NLP | 计算机处理自然语言的总领域 | 分词、分类、抽取、翻译、问答、生成、语音 | 不是某个模型或 API 的名称 |
| NLU | 强调从语言中识别结构、意图和含义 | 意图分类、实体识别、语义解析、阅读理解 | “理解”必须落到可评价任务,不能只靠主观感觉 |
| NLG | 强调生成语言输出 | 摘要、翻译、回答、改写、对话 | 流畅不代表事实正确、完整或符合要求 |
| 语言模型 | 对语言序列概率或下一个 token 等目标建模 | n-gram、神经语言模型、预训练 Transformer | 语言模型可以服务多个 NLP 任务,但不是整个系统 |
| LLM | 大规模参数和数据训练的语言模型类别 | 生成、分类、抽取、工具调用的基础模型 | 参数规模不是任务质量、安全或可部署性的充分条件 |
| 计算语言学 | 语言学与计算方法的交叉研究领域 | 句法、语义、语用、语料与语言建模 | 与 NLP 高度重叠,但研究问题不只限于产品实现 |
Google Cloud 的中文说明也把 NLP 分为识别/分析与生成等任务,并列出实体、情感、分类和语法分析。它是厂商教育页面,不应被当作唯一学术定义;本文使用它来说明当前开发者常见任务表达。
一张任务表看懂 NLP 到底在做什么
| 任务 | 输入 → 输出 | 常用指标 | 高风险错误 |
|---|---|---|---|
| 文本分类 | 一段文本 → 一个或多个标签 | 准确率、宏/微平均 F1、PR-AUC | 类别不平衡时只看准确率;标签定义漂移 |
| 序列标注/实体识别 | token 序列 → 每个位置的标签或实体跨度 | 实体级 precision、recall、F1 | 只算 token 级分数,掩盖边界错误 |
| 信息抽取 | 文档 → 实体、关系、事件、字段 | 字段级精确率/召回率、完整率 | 把未提及字段补全;数字、日期和主体错配 |
| 检索/排序 | 查询 + 文档库 → 相关文档列表 | Recall@K、MRR、nDCG | 测试集与索引泄漏;只看最终回答不看召回 |
| 问答 | 问题 + 上下文 → 答案与证据 | EM/F1、事实支持、引用覆盖、人工任务成功 | 答案流畅但无证据、引用不支持结论 |
| 翻译/摘要/生成 | 语言序列 → 新语言序列 | 自动指标 + 人工充分性、忠实度、可用性 | 一个自动分数代表所有质量;遗漏否定和条件 |
| 语音识别/合成 | 音频 ↔ 文本或语音 | WER/CER、可懂度、自然度、说话人和时延 | 方言、人名、数字失真;声音权利和隐私 |
同一个输入可以有多个任务。例如客服消息既可做意图分类,也可抽取订单号、检索政策、生成回复并做合规检查。项目失败常不是“模型不够大”,而是把这些输出和责任混成一个无法判定对错的“理解文本”目标。
规则、传统模型、预训练模型还是 LLM?
| 路线 | 更适合 | 主要优点 | 主要限制 |
|---|---|---|---|
| 规则/词典/正则 | 格式稳定、可解释、错误代价高的小范围任务 | 确定、便宜、容易审计 | 覆盖维护困难,语言变化后易漏召回 |
| 传统机器学习 | 标签清晰、特征稳定、数据与算力有限 | 基线快、训练成本低、易分析 | 迁移与复杂语义能力有限 |
| 任务型深度模型 | 分类、序列标注、检索等固定任务 | 吞吐和任务优化明确 | 每个任务需要数据、训练和维护 |
| 预训练编码器/序列模型 | 微调分类、抽取、问答、翻译 | 复用通用表示,少量任务头 | 仍需标注、切分和任务评价 |
| LLM 提示/RAG/微调 | 任务多变、生成、少样本、自然语言接口 | 覆盖面广、原型快、可组合工具 | 输出概率性、成本/延迟、幻觉、权限和评测复杂 |
| 混合系统 | 生产中既要灵活又要确定控制 | 规则守门、检索供证、模型处理语言 | 链路更长,必须保存中间证据和回退 |
2017 年Transformer 原始论文提出基于注意力的序列转换架构;2018 年BERT 论文展示了预训练双向表示再适配多种理解任务的路径。需要补足直觉时,可配合 Google 的Transformer 教学页阅读,但教学简化不能替代论文和具体实现文档。它们解释了现代 NLP 技术演进,却都不能证明某个今天的产品在中文业务中合格。
想继续理解模型训练阶段,可阅读本站的预训练是什么和微调的任务边界;注意力机制的计算直觉见注意力机制详解。这些是相邻知识页,不替代本页的任务与项目方法。
中文 NLP 为什么不能照搬英文流程
字符、词和 token 是三个层次
用户看到的“一个字符”可能由多个 Unicode code point 组成;词边界又依赖文字系统和语言习惯;模型 token 则由具体 tokenizer 决定。Unicode 的UAX #29 Text Segmentation定义了字素簇、词和句边界的默认规则,同时明确边界会因语言和正字法而不同。不能用 Python 字符长度、正则 \b 或某个模型 token 数互相替代。
分词不是唯一正确答案
“南京市长江大桥”怎样切分取决于任务和标注规范。实体识别可能关心完整地名,搜索可能需要不同粒度,生成模型甚至不显式使用中文词分割。评价前必须冻结标注指南和边界规则,否则两个系统可能都合理却被错误判分。
简繁、异体、专名、数字与混合语言要单独测试
数据集应记录简体/繁体、地区和语言变体、行业、时间、来源、授权、说话人/作者群体、口语书面语、噪声与敏感字段。Bender 与 Friedman 的NLP Data Statements强调说明语言、语言变体和说话人群体,以限制不恰当的泛化。
中文基准也不是“中国语言能力”的单一答案。CLUE 官方项目覆盖多种中文理解任务,可以用于对照任务设计,但排行榜分数只适用于其数据、标签和评测协议;业务中的新词、方言、OCR、长文档或安全风险仍需自己的测试集。
中文文本预处理为什么必须写成版本化合同?
“清洗文本”不是一个无害的通用步骤。全角半角、繁简转换、大小写、空白、控制字符、emoji、URL、数字格式和 Unicode 规范化都可能改变业务含义。搜索系统或许希望把某些形式折叠以提高召回,法律文书抽取却可能必须保留原始字符、版式和位置。正确做法是同时保存原文与派生文本,并记录每一步转换的版本。
| 处理项 | 可能收益 | 可能破坏 | 必须测试 |
|---|---|---|---|
| Unicode NFC/NFKC | 统一部分等价表示,便于比较 | NFKC 会折叠某些兼容字符和格式差异 | 全半角、单位、圈号、上标、少数文字与往返需求 |
| 繁简转换 | 扩大跨地区召回 | 一对多词义、专名、地区用词和原文证据 | 人名地名、法规标题、术语及原文回显 |
| 空白/标点清理 | 减少 OCR 和网页噪声 | 表格列、列表层级、公式与否定关系 | 跨行数字、项目符号、引号、负号和小数点 |
| 大小写与拉丁文本 | 提升普通关键词匹配 | 型号、基因、代码、缩写和密码样式 | 产品 ID、变量名、URL 与混合语言 |
| emoji/特殊符号 | 降低非目标噪声 | 情感、否定、告警、身份或社区语义 | 客服、社交、青少年和安全场景 |
| 数字/日期标准化 | 便于检索和比较 | 单位、时区、千分位、模糊日期和原始证据 | 金额、百分比、版本号、证件号与日期区间 |
Unicode UAX #15 规范化形式明确区分 NFC、NFD、NFKC 和 NFKD,并提醒兼容性规范化会消除某些格式区别,不能盲目用于任意文本。工程台账应保存 Unicode 版本、规范化形式、繁简库、词典、正则和 tokenizer 版本;任何一项变化都可能让训练、评测与线上特征不一致。
预处理还要避免训练/服务偏差。训练时保留表格结构,线上却把换行全部删除;训练用原始大小写,服务端又统一小写,都会制造难以复现的下降。最小回归集应包含原文、预期派生文本、token 序列和最终任务输出,并在每次库或规则升级时运行。相关发布合同可纳入AI 项目生命周期验收指南统一管理。
八步把 NLP 概念变成可验收项目
第一步:把“理解文本”改写成可判定任务
写明输入、输出、用户、动作、错误成本和禁止事项。例如不是“理解投诉”,而是“把一条中文工单分到 12 个互斥队列;低置信时转人工;不得自动承诺退款”。
第二步:建立数据声明和授权记录
记录来源、语言/地区、时间、体裁、用户群体、采样、标注、许可、敏感信息、训练/评测用途和删除要求。公开可读不等于可任意训练,脱敏也不等于没有重识别风险。
数据与标注合同应该写清哪些边界?
标注标签必须用可执行定义表达。以“投诉”为例,要说明是否包含讽刺、转述他人投诉、同时包含咨询的文本、多轮对话中只有上一轮表达不满等情况。每个标签给正例、反例和边界例;遇到新类型时记录裁决,而不是让标注员凭感觉各自处理。
| 合同部分 | 必须记录 | 验收证据 | 常见失真 |
|---|---|---|---|
| 数据来源 | 系统、时间、地区、语言、采样和授权 | 可追溯样本清单与许可 | 把公开网页等同于无限训练许可 |
| 标签定义 | 包含、排除、重叠、未知和低置信规则 | 正反边界例与裁决日志 | 标签名相同但团队理解不同 |
| 标注过程 | 标注员背景、培训、盲标、复核和仲裁 | 一致性统计与冲突样本 | 只报告总量,不报告分歧 |
| 敏感信息 | 识别、脱敏、访问、保留和删除 | 权限记录与删除验证 | 脱敏后仍可由上下文重识别 |
| 用途边界 | 训练、验证、测试、展示和二次发布 | 用途与数据子集对应表 | 测试集进入提示示例或人工调参 |
| 变更管理 | 版本、变更理由、受影响标签与迁移 | 新旧规则差分和回归结果 | 覆盖旧标注却不保留历史 |
一致性高不一定意味着标签正确:标注员可能一致执行了有缺陷的规则。因此既要统计分歧,也要由业务和语言专家抽查边界样本。对主观任务可以保留多标注分布,而不是强行压成单一“真值”;对数字、实体和法规字段则应更强调可复核原文位置。数据声明应与模型卡、评测报告和上线范围一起交付。
第三步:先做最简单基线
分类任务先比较多数类、关键词/规则和简单统计模型;抽取先做字典/正则;检索先做词法基线。没有基线,就无法判断大模型增加的成本和复杂度是否真正带来价值。
第四步:按来源和时间切分数据
随机拆分可能把同一用户、模板、新闻复写或相邻时间文档放进训练和测试,制造数据泄漏。根据上线环境采用用户级、文档簇级、时间外推或领域外推切分,并保存去重方法。
Google 的数据集划分说明特别举例说明,训练集与测试集存在重复样本会让测试结果失真。NLP 中还要检查近重复:同一新闻转载、同一模板替换姓名、同一会话的不同轮次、同一文档的相邻 chunk,哈希不同也可能泄漏。切分应先按用户、会话、文档簇或时间分组,再生成训练/验证/测试集合。
第五步:选择与错误成本匹配的指标
类别不平衡时不能只看准确率;抽取同时看精确率和完整率;生成同时看忠实度、充分性与任务成功;高影响场景对数字、身份、否定和权限设置单独门槛。指标定义要先于模型比较。
如何把离线指标映射到真实错误成本?
指标选择从“哪种错误更贵”开始。垃圾信息过滤中误删正常消息可能比漏掉一条垃圾消息更严重;安全告警中漏报可能代价更高。Google 的分类指标说明指出,类别不平衡时准确率可能非常误导,precision、recall 和阈值选择要结合任务和误分类成本。
| 任务层 | 主要问题 | 建议证据 | 不能只看 |
|---|---|---|---|
| 分类 | 正负类、类别不平衡与阈值 | 混淆矩阵、每类 P/R/F1、PR 曲线、严重错误 | 总体准确率 |
| 实体/字段抽取 | 边界、类型、缺失和错配 | 实体级 P/R/F1、字段完整率、数值复算 | token 级准确率 |
| 检索/排序 | 正确资料是否进入并排在前面 | Recall@K、MRR/nDCG、过期与越权样本 | 最终回答流畅度 |
| 生成/摘要 | 忠实、充分、格式和任务完成 | 原子主张支持率、遗漏、人工任务成功、拒答 | 单个自动相似度分数 |
| 端到端系统 | 用户能否安全完成任务 | 成功率、接管、回退、延迟、成本与事故 | 模型离线分数 |
阈值也属于发布配置。比较模型时固定阈值能展示纯模型差异,但上线时应在验证集上根据成本选择阈值,再在未参与选择的测试集上报告结果。不要在看到测试结果后不断调阈值;这会让测试集变成隐形验证集。所有主指标还要按语言变体、长度、来源和高风险字段切片。
第六步:做切片和反事实错误分析
按简繁、长度、来源、行业、方言/口语、OCR、专名、数字、否定、时间和敏感群体切片。每个错误记录输入、期望、输出、严重度、根因、修复和回归用例,不只展示总体平均。
第七步:在近似部署条件下测试完整系统
把检索、提示词、模型版本、后处理、工具、权限、超时和人工接管一起测试。NIST AI RMF Core要求记录测试集、指标和工具,并在接近部署条件下评价,生产中还要持续监控。
LLM 与 RAG 系统为什么必须分层验收?
一个问答失败可能发生在解析、索引、召回、重排、上下文拼装、生成或权限层。只给最终回答打分,会把上游没找到资料与模型看见资料后仍然编造混在一起。分层保存中间产物才能决定是调整分块、检索、提示词、模型还是拒答规则。
| 层 | 应保存 | 主要指标 | 典型停止线 |
|---|---|---|---|
| 解析与切分 | 原文位置、结构、表格、图片与 chunk 版本 | 字段保真、结构覆盖、解析失败率 | 关键数字、标题或表格关系丢失 |
| 召回 | 查询、过滤条件、候选 ID 和分数 | Recall@K、越权/过期候选 | 权威资料未进入候选或越权文档可见 |
| 重排与上下文 | 重排输入输出、截断、最终上下文 | nDCG/MRR、证据覆盖和冲突率 | 错误版本压过现行文档 |
| 生成 | 模型、提示、参数、回答与引用映射 | 主张支持、完整、拒答和格式 | 关键事实无来源或引用不支持主张 |
| 工具与动作 | 调用参数、身份、审批、结果和幂等键 | 任务成功、越权、重试与回滚 | 不可逆动作无审批或无法撤销 |
RAG 的索引与评测方法可参考Haystack RAG Pipeline 指南;生成结果的原子主张核验见AI 内容审核与事实核验指南。对输入文档、检索结果和工具返回都要视为潜在不可信数据,提示注入、权限隔离与最小动作边界可结合AI 安全与提示注入防护指南设计。
NIST 的生成式 AI 风险管理框架配置文件把生成式系统的风险管理放回完整设计、开发、使用和评估流程。它不是某个准确率门槛,也不能替代行业法规;可用来检查是否记录了模型、数据、评测、监控和人类监督等责任。
第八步:灰度、监控和可回滚
先影子运行,再限制写入和影响范围;监控分布漂移、任务成功、人工接管、严重错误、延迟和成本。模型、词表、检索库、标注规则或用户群发生实质变化时重新评估。
上线后怎样发现语言分布和业务规则已经变了?
生产监控要同时看输入、输出、系统和业务四层。输入层记录语言、长度、来源、OCR 质量、简繁比例、新词和敏感字段的分布;输出层记录标签、拒答、低置信、引用和格式错误;系统层记录延迟、超时、重试、Token 与成本;业务层记录人工改判、转接、投诉、错误动作和任务完成。只看服务器是否报错,会错过“系统正常返回但答案越来越不适用”的静默退化。
漂移告警不是看到分布差异就立即重训。先抽样确认变化来自真实用户、采集管线、节假日、营销活动、攻击流量还是标注规则。模型输出标签比例变化也可能是业务需求变化,而不是模型坏了。告警必须关联原始样本、模型版本、预处理版本和当时阈值,否则团队无法复现。
建立稳定的人工反馈闭环:改判人选择错误类型、期望结果和理由,系统保留输入、旧输出和证据。反馈不能未经审查直接回流训练,因为用户可能误判、数据可能含隐私,攻击者也可能刻意污染。定期由业务、语言和工程人员共同裁决边界例,再形成新标注版本与回归集。
严重事件要有明确停止线。例如身份或金额错配、越权显示、否定条件丢失、错误自动动作、敏感信息泄露,一次就可触发降级为只读、规则基线或人工处理。低影响问题可以进入修复队列,但仍应记录发生率和受影响切片。任何回滚都要同时恢复模型、tokenizer、词典、提示、索引和阈值,不能只切回一个模型名称。
重训或更换 LLM 后,先跑冻结回归集,再用最新真实分布建立挑战集;两者分别回答“旧能力有没有退化”和“新环境能不能覆盖”。公开报告应写明数据时间、切片、阈值和部署版本。若只能证明离线分数提高,就不要声称用户任务、成本或安全性已经改善。
如何处理 NLP 项目中的低置信、冲突和无答案?
低置信不是统一的一个数字。分类模型可以使用校准后的概率和任务阈值;抽取系统可以按字段设置不同门槛;生成模型的自述“我有 90% 把握”通常不能当作可靠校准。更稳妥的信号包括检索是否有权威资料、多个来源是否冲突、必需字段是否齐全、输出是否通过格式与业务规则,以及历史相似错误。
无答案时应输出可行动的失败类型:资料库没有覆盖、用户无权限、输入信息不足、来源相互冲突、系统暂时不可用或任务超出允许范围。每种类型对应不同下一步,例如请求补充信息、转人工、展示允许访问的来源、稍后重试或明确拒绝。不要让一个通用“抱歉,我不知道”掩盖权限问题,也不要为了提高回答率从低相关文档拼出答案。
来源冲突时保留各自版本、发布日期和适用范围,避免模型擅自做“平均”。法规、政策、价格和流程应优先由业务定义的权威源与有效期规则裁决;无法裁决就把冲突展示给有权限的人。把拒答和人工接管纳入成功路径,才能让系统在证据不足时安全停止,而不是以覆盖率为目标持续猜测。
一份可复制的 NLP 项目卡
任务:输入 → 输出 → 下游动作
用户与场景:谁使用 / 何时使用 / 哪些语言和设备
禁止事项:不可自动执行或不可编造的内容
数据声明:来源 / 语言变体 / 时间 / 人群 / 许可 / 敏感字段
切分:用户级 / 文档簇级 / 时间外推 / 领域外推
基线:规则 / 统计模型 / 现有流程
指标:主指标 / 切片指标 / 严重错误 / 人工任务成功
版本:代码 / 模型 / tokenizer / 提示词 / 检索快照 / 依赖
失败恢复:低置信 / 超时 / 无来源 / 冲突 / 人工接管
上线:影子 → 灰度 → 限制写入 → 放量
监控:漂移 / 错误 / 接管 / 延迟 / 成本 / 回滚触发
常见问题
NLP 已经被大模型取代了吗?
没有。LLM 改变了许多任务的实现方式,但分类、检索、标注、语音、数据、评价、语言学分析和系统治理仍属于 NLP。很多生产系统是规则、检索、小模型和 LLM 的组合。
学习 NLP 是否必须先学深度学习?
不必。先掌握任务定义、文本与 Unicode、数据切分、precision/recall/F1、错误分析和简单基线,再学习表示、Transformer 和预训练,通常更容易理解模型为何成功或失败。
中文 NLP 一定要先分词吗?
不一定。传统管线和部分任务需要词级边界,现代子词/字符模型可能不显式分词;但业务实体边界、Unicode 规范化和 tokenizer 行为仍必须测试。
一个公开 benchmark 分数能证明系统可上线吗?
不能。公开基准只能证明特定数据和协议下的表现。上线还需真实语言分布、时间外推、切片、严重错误、端到端流程、人工接管和生产监控。对生成答案的进一步核验可阅读本站的AI 答案事实核验方法。
本次修订与资料说明
纠错记录(2026 年 7 月 19 日):旧版主要罗列定义、历史阶段和聊天机器人等应用,缺少 NLP 与 LLM 的边界、中文文本问题、输入输出任务、项目切分、指标和生产门槛。严格 A 稿撤回“全面解析”的空泛表述,以任务地图、中文预处理合同、标注与切分、分层评测、RAG/LLM 故障归因、八步项目流程和可复核资料重建。
本文由兰塞 AI 编辑部依据 Stanford 教材草稿、Unicode 规范、Google 教育资料、Transformer/BERT 原始论文、CLUE、ACL 数据声明和 NIST AI RMF 整理。三张图为本站原创方法图,不代表虚构模型测试结果。
