第四部 · 感知、语言与生成 · 第 14 章 · 已验收

自然语言处理:把语言变成可计算对象

从字符、词元与分词出发,经TF-IDF、词向量、语言模型和序列任务走到注意力与Transformer,并用机器翻译、问答和信息抽取说明基准、部署与理解边界。

导读:语言留下痕迹,但痕迹不是世界

自然语言处理(natural language processing,NLP)研究怎样让计算机处理人使用的语言:从文本中检索资料、标出人名,给邮件分类,翻译句子,或根据上下文生成后续词元。之所以需要它,是因为大量知识、交易和公共服务以语言保存,而普通程序更擅长边界明确的数字与字段;NLP把两者接起来。[1, chs. 2–3]

这座桥有一条容易忘记的裂缝。屏幕上的字符和麦克风里的声波是语言信号;一句话指向什么,还取决于前文、说话者、共同知识、语气和现实世界。“他到了银行”里的“银行”可能是金融机构,也可能是河岸的误译;“真早啊”在迟到场景里甚至可能表示责备。系统能从材料中学到规律,却没有因此自动取得说话者的意图或世界真相。流畅只是形式连贯的证据,不是理解、事实正确或诚实的证书。

本章贯通传统NLP的基本路线,并给出attention与Transformer的最小接口。大规模预训练、聊天式大语言模型、RAG和对齐留到第18章;不能用后章产品的声量抹去本章仍然成立的分词、表示、任务和评测条件。

14.1 从字符到词元:第一步已经在作决定

计算机先把文本编码为Unicode码点或字节,再按约定切成词元(token)。token可以是字符、词、标点或子词;它是系统的处理单位,不等于语言学上唯一正确的“词”。中文通常不以空格标出全部词界,“研究生命起源”可随词表和任务出现不同切法。早期中文分词已经把词典与概率结合,而不是把空格当现成答案。[2, pp. 377–386]

分词(tokenization)通常包含规范化、切界、查词表和变成整数ID。训练阶段可以从语料建立词表;推断时应固定同一词表。若新输入出现词表外项,系统必须有明确策略:整项变成[UNK]、退回字符,或继续拆成已知子词。三种做法都会丢失或保留不同信息,不存在免费方案。

子词(subword)折中于整词和字符之间。BPE一类方法从训练语料学习频繁合并,使常见词保持较完整、罕见词可拆开;这缓解开放词表翻译的稀有词问题,但学到的是数据与算法下的单元,不是“发现了唯一词素”。[3, §§1–3]

三条原句猫喜欢鱼、狗喜欢鱼、猫喜欢狗经过词典最长匹配分词;词典完整列出猫、狗、喜欢、鱼,输出分别为猫斜线喜欢斜线鱼、狗斜线喜欢斜线鱼、猫斜线喜欢斜线狗,并汇总词表猫、喜欢、鱼、狗。

窄屏可横向滚动查看全图。

图14-1 中文小语料的确定性最长匹配分词。 这是给定词典下的一条可复算规则,不宣称切分唯一正确。原创图与原创数据,本项目,CC BY 4.0。

图14-1规定从左到右取词典中最长匹配;同长时按词典顺序;无匹配就报错。现实系统常选字符回退或[UNK]而非报错。这里故意报错,是让未知项不能静默改变计算。词表按三篇文档首次出现为[猫, 喜欢, 鱼, 狗]。

语言还会借词形表达语法与意义:英语的walk/walked、汉语的“看/看过”都提示时间或体,但语言组织形态的方式不同。词干化、词形还原或子词切分可以让相关形式共享证据,却也可能丢掉区别;中文没有空格词界,并不等于“没有形态”。本章的BPE单元是计算约定,不能冒充语言学分析。

语料库(corpus)是按目的收集并记录来源的一组语言材料,可以由文档、句子、转写语音和标注组成。训练集用于估计词表或参数;验证/测试材料用于选择与评价,不能一边看测试答案一边训练。语料的年代、领域、语言变体和许可,会限定模型学到什么以及成绩能外推到哪里。

14.2 计数仍有用:TF–IDF与余弦的完整手算

把词表中每个词对应一个维度,文档可写成高维、绝大多数位置为0的稀疏表示。先定义本例全部条件:有N=3N=3篇文档;tf(t,d)\mathrm{tf}(t,d)是词tt在文档dd中的原始次数;df(t)\mathrm{df}(t)是至少出现一次tt的文档数;ln⁡\ln是以ee为底的自然对数;IDF不平滑;向量顺序固定为[猫, 喜欢, 鱼, 狗]。于是

idf(t)=ln⁡Ndf(t),wt,d=tf(t,d) idf(t).(14-1)\mathrm{idf}(t)=\ln\frac{N}{\mathrm{df}(t)},\qquad w_{t,d}=\mathrm{tf}(t,d)\,\mathrm{idf}(t). \tag{14-1}

三篇文档为d1=d_1=“猫喜欢鱼”、d2=d_2=“狗喜欢鱼”、d3=d_3=“猫喜欢狗”。分词后的原始词频向量依次是(1,1,1,0)(1,1,1,0)、(0,1,1,1)(0,1,1,1)、(1,1,0,1)(1,1,0,1)。四个df为(2,3,2,2)(2,3,2,2),所以

ln⁡(3/2)=0.4054651081081644,ln⁡(3/3)=0.(14-2)\ln(3/2)=0.4054651081081644,\qquad \ln(3/3)=0. \tag{14-2}

未经归一化的TF–IDF向量因此是

v1=(a,0,a,0),v2=(0,0,a,a),v3=(a,0,0,a),a=ln⁡(3/2).(14-3)\begin{aligned} \mathbf v_1&=(a,0,a,0),\\ \mathbf v_2&=(0,0,a,a),\\ \mathbf v_3&=(a,0,0,a),\qquad a=\ln(3/2). \end{aligned} \tag{14-3}

“喜欢”在每篇都出现,本例IDF为0;这不表示它没有语言意义,只表示它在这三篇的区分文档任务中没有权重。真实实现有多种TF缩放、平滑与停用词约定,所以“TF–IDF”不是唯一公式。[4, Ch. 6]

若查询q=q=“猫鱼”,同一词表下q=(a,0,a,0)\mathbf q=(a,0,a,0)。余弦用L2范数,且只在两个范数都非零时定义:

cos⁡(q,v)=q⊤v∥q∥2∥v∥2.(14-4)\cos(\mathbf q,\mathbf v)= \frac{\mathbf q^\top\mathbf v}{\lVert\mathbf q\rVert_2\lVert\mathbf v\rVert_2}. \tag{14-4}

∥q∥2=2a\lVert\mathbf q\rVert_2=\sqrt2a。于是与d1d_1的点积为2a22a^2、余弦为1;与d2,d3d_2,d_3的点积均为a2a^2,两个文档范数也是2a\sqrt2a,余弦均为1/21/2。若查询经处理后没有词表内项,就得到零向量,本例报告“不可计算/无匹配”,不以除零或擅自给0掩盖。章节JSON保留未舍入binary64值;页面十进制只是显示。

词表按猫、喜欢、鱼、狗排列,三篇文档的词频向量依次为一一一零、零一一一、一一零一;猫、鱼、狗的文档频率为二,逆文档频率为自然对数ln三除以二即0.4054651081081644;喜欢的文档频率为三,逆文档频率为ln一即零;TF-IDF为原始词频乘相应逆文档频率。

窄屏可横向滚动查看全图。

图14-2 三文档从词频到TF–IDF。 数值来自可下载的原创JSON,生成/核验脚本见Python源码。未归一化表示只用于教学。原创图、数据与脚本,本项目,CC BY 4.0。

14.3 语言模型:预测语言形式的概率

语言模型(language model,LM)给词元序列分配概率,或估计下一个词元的条件概率。它之所以出现,是因为分词和词频只列出“有哪些单位”,还不能比较哪些排列在给定上下文中更可能;语音识别、输入法、翻译解码和生成都需要为候选序列评分。链式法则本身是恒等式:

P(x1,…,xT)=∏t=1TP(xt∣x1,…,xt−1).(14-5)P(x_1,\ldots,x_T)=\prod_{t=1}^{T}P(x_t\mid x_1,\ldots,x_{t-1}). \tag{14-5}

这里xtx_t是第tt个token,TT是长度。n-gram用最近n−1n-1个token近似全部历史,并从训练计数估计;未见n-gram若不平滑就会给0,因此实际系统要声明加法、回退或插值等处理。训练是在语料上估计参数,推断是在参数固定后评分或逐步选择/采样。离线可在未参与训练的同口径token序列上报告平均负对数似然或困惑度;两者依赖词表、tokenizer和测试语料,不能跨口径裸比分数,下游还要按识别、翻译或生成任务另评。高概率表示“像训练分布中的语言”,不保证句子在现实中为真。

规则方法可直接写词典、语法和模板,优点是局部行为可审计;统计方法用计数和概率表达不确定性;神经方法从数据学习表示和非线性函数。它们是历史重心的变化,不是三次彻底清场:搜索过滤仍用规则,神经翻译可用词表约束,混合系统也很常见。

14.4 从一个向量到上下文中的表示

TF–IDF的维度可解释,却把近义词放在不同坐标。嵌入(embedding)把离散项映射到较低维稠密向量;word2vec一类目标使相似上下文中的词得到可比较表示。[5, §§1–3] 静态词向量给“苹果”一个固定向量,难以区分水果与公司;上下文表示则让同一词在不同句子得到不同向量。向量接近是训练目标与数据下的统计关系,不自动等于同义、因果或价值一致。

循环神经网络按次序更新隐藏状态,seq2seq把输入序列编码后再解码输出;它们推动了翻译与标注,但长距离路径和顺序计算限制并行。序列任务大致分两类:

  • 分类给整段文本一个或多个标签,如垃圾邮件、主题或情感;标签质量取决于定义与标注者。
  • 序列标注给每个token标签,如词性、分词边界和命名实体识别(NER)。CRF显式给整条标签序列评分,避免只做互不相干的逐位置决定。[6, §§1–3]

NER之所以需要专门建模,是因为词典只能列已知名称,同一名称还可能随上下文改变类型。任务先规定实体类别与跨度标注,例如用B/I/O标签表示实体开始、内部和外部;训练时从已标注句子学习,推断时输出新句子的跨度与类型。它能为检索、脱敏或知识库候选提供结构,却不能核实该名称对应现实中的哪一个对象,也不能发现类型体系之外的“所有实体”。评价须同时报告precision、recall和F1,并写清是精确跨度还是部分匹配、micro还是macro;领域或标注规范一变就要重测。

信息抽取在此基础上寻找实体、关系和事件;它把自由文本变成任务定义下的结构,不是从文字直接恢复“世界数据库”。NIST参与的ACE把实体、关系、事件限制在给定类型体系、语料与评分协议中,这属于离线评价,不是实时生产知识库的真值保证。[7, task and evaluation sections]

14.5 Attention与Transformer:让位置直接交换信息

注意力(attention)让每个位置按内容从其他位置汇总信息。对单个注意力头,设序列长为nn,查询、键的维度为dkd_k,值维度为dvd_v:Q,K∈Rn×dkQ,K\in\mathbb R^{n\times d_k},V∈Rn×dvV\in\mathbb R^{n\times d_v}。则

Attention⁡(Q,K,V)=softmax⁡row ⁣(QK⊤dk)V.(14-6)\operatorname{Attention}(Q,K,V)= \operatorname{softmax}_{\text{row}}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V. \tag{14-6}

QK⊤QK^\top形状为n×nn\times n;对每一行做softmax,权重非负且和为1;再乘VV得到n×dvn\times d_v。除以dk\sqrt{d_k}是为减轻dkd_k较大时点积幅度使softmax过度饱和的问题。这里的“注意”是可学习加权运算,不等于人的注意、解释或因果证据。[8, §3.2.1]

Transformer以自注意力、逐位置前馈网络、残差连接和位置表示组成层,可并行处理一段序列,并缩短远位置的信息路径。它后来成为许多翻译、表示和语言模型的基础。但本式没有说明数据怎样取得、事实怎样核验、输出为何符合人的意图;模型规模化、预训练目标和聊天对齐将在后章展开。

14.6 从表示到任务:检索、翻译与问答

检索不是“生成一个听起来合适的答案”,而是依查询为文档或段落排序。TF–IDF/余弦是经典基线,现代检索还会学习稠密表示与重排器。好坏必须相对于查询集、相关性判断和指标来谈;离线相关文档命中率不能代替时效、权限、延迟和用户是否真正解决问题。[4, Ch. 8]

TREC 2001问答赛道在固定文档集、问题和人工判断规则下评价事实型、列表与上下文任务。它是严谨的离线共享评测,证明的是参赛系统在该协议下的能力,不是任意问题、实时网络、连续对话或安全拒答的生产证明。[9, task and scoring sections]

机器翻译(machine translation,MT)是在任务所要求的语境下,把一种语言的材料自动转换成另一种语言的表达;它不是逐词替换,同一句源文可以有多种合格译文。它出现是为扩大跨语言信息访问并减少纯人工逐句处理,但自动化不能取消专业译审。

研究重心经历了规则、统计短语模型和神经seq2seq/Transformer的迁移。规则系统能编码术语和语法,却难以穷举活语言的歧义与例外;统计系统从双语语料对齐片段,以数据估计选择,但依赖手工特征与局部分解;神经系统共同学习表示和条件概率,减少部分手工设计,却更依赖数据覆盖、算力和难以审计的内部表示。它们仍可组合,例如神经候选受术语表或解码约束控制。

Google 2016年的GNMT报告适合展示三种证据不要混写:

  1. 公开离线基准:作者在WMT’14英法、英德测试上报告BLEU;结论只属于指定语言方向、测试与处理口径。
  2. 厂商内部实验与人工评价:团队称系统在Google内部大规模数据集上做实验;另在英语往返法、西、中六个方向做三方并排人工评价,每个语对的评价材料是从Wikipedia和新闻网站随机抽取的500句及对应人工译文,并报告相对自家上一代短语系统的错误减少。材料被描述为孤立短句,协议与结果不能外推到长文、高风险专业翻译或所有语言。
  3. 部署陈述:作者称量化实现用于production traffic/production environment。这是系统开发方的一手陈述,不是独立部署审计。[10, §§6, 8.6–8.7 and Conclusion]

BLEU组合修正n-gram精确率与简短惩罚,面向语料级、依赖参考译文。它不是“正确率百分比”,单句分数也不是可靠的人类质量判断;分词、大小写和实现会改变结果,报告时应带计算口径。[11, §§2–5][12, §§1–3] 人工评价能直接问充分性、流畅度或偏好,却同样受样本、说明、评审者语言能力和一致性影响。真实部署还要测延迟、成本、术语、更新、投诉与危害;三层证据回答不同问题。

14.7 能做什么,以及哪些结论跨不过去

NLP可以把大量材料变得可搜索、可分类、可翻译、可提取,也能帮助字幕、辅助写作与信息访问。它不能仅凭文本形式保证下列事情:作者身份真实、叙述符合世界、缺失背景已被补足、讽刺被正确理解,或输出适合医疗、法律等高风险决定。

现实困难并非一个“准确率”能装下:

  • 歧义与语境:同一串字符随前后文、领域和社群改变含义;切分与标签常有多种合理答案。
  • 方言与社会语言变体:Blodgett等在2013年美国地理定位Twitter的AAE-like样本上发现特定语言识别与依存分析器差异。这是远程监督、平台与任务特定案例,不能改写为种族决定语言或所有方言都会失败。[13, §§2, 4–6]
  • 低资源语言:Joshi等按若干资源目录、Wikipedia和论文记录观察到语言间资源不均衡;资源条目不是语料质量或模型性能,也不是2026年永久不变的排名。[14, §2]
  • 领域与时间漂移:新闻上训练的NER遇到病历、地方机构简称或新的实体类型时,输入分布和标签定义都可能变。随机测试集高分不保证未来或异地用户。
  • 事实性:在所测XSum抽象摘要系统中,人工评价发现来源不支持的内容;这说明流畅和ROUGE不足以证明忠实,不说明所有输出都错,也不把“忠于来源”与“现实为真”混成一件事。[15, §§1–5]
  • 隐私:Carlini等在特定黑盒威胁模型下从GPT-2家族抽取到逐字训练文本,构成记忆可能转成抽取风险的存在性证据;它不等于任意提示能取出任意记录,或所有模型必然泄露。[16, §§3–5]

因此,评测报告至少要写清训练/测试材料、语言与变体、时间、领域、tokenizer、指标、阈值和失败样本。数据说明能帮助读者判断覆盖与外推,但填写表格不会自动消除偏见。[17] 涉及私人通信、客服记录或病历时,还要有最小收集、访问控制、保留与删除机制;“可抓取”不等于“可随意训练”。

本章小结

NLP把语言信号变为token、表示、概率和任务输出;每一步都带着词表、语料和评价约定。规则、统计和神经方法不是互斥年代,而是不同可控性、数据与计算条件下的工具。TF–IDF能说明可解释计数,embedding与上下文模型能学习更柔性的相似关系,attention/Transformer则让远位置直接汇聚信息。

但系统处理得像语言,不等于掌握了说话者意图或世界事实。离线基准、人工评价和真实部署必须分开;语言、领域、人群或时间一变,结论就需要重验。

相关词条

自然语言处理 · 词元 · 分词 · 子词 · TF–IDF · 嵌入 · 语言模型 · 命名实体识别 · 机器翻译 · 注意力 · Transformer

本页参考来源

  1. Jurafsky D, Martin J H. Speech and Language Processing [M]. Stanford University, 2025. Third-edition online draft chapters. 定位:Chapters 2, 3, 6, 8, 17, 18, 23 and 25, versions available at access date. 稳定来源(访问 )。
  2. Sproat R, Shih C, Gale W, Chang N. A Stochastic Finite-State Word-Segmentation Algorithm for Chinese [J]. Computational Linguistics, 22(3), 377–404. Computational Linguistics, 1996. 定位:pp. 377–386. 稳定来源(访问 )。
  3. Sennrich R, Haddow B, Birch A. Neural Machine Translation of Rare Words with Subword Units [C]. Association for Computational Linguistics, 2016. 定位:§§1–3 and experiments. DOI;稳定来源(访问 )。
  4. Manning C D, Raghavan P, Schütze H. Introduction to Information Retrieval [M]. Cambridge University Press, 2008. 定位:Chapters 6 and 8. 稳定来源(访问 )。
  5. Mikolov T et al.. Distributed Representations of Words and Phrases and their Compositionality [C]. NeurIPS, 2013. 定位:§§1–3. 稳定来源(访问 )。
  6. Lafferty J, McCallum A, Pereira F. Conditional Random Fields — Probabilistic Models for Segmenting and Labeling Sequence Data [C]. ICML, 2001. 定位:§§1–3. 稳定来源(访问 )。
  7. Doddington G et al.. The Automatic Content Extraction (ACE) Program — Tasks, Data, and Evaluation [C]. LREC, 2004. 定位:Task, corpus and evaluation sections. 稳定来源(访问 )。
  8. Vaswani A et al.. Attention Is All You Need [C]. NeurIPS, 2017. 定位:§§1–3, especially §3.2.1. 稳定来源(访问 )。
  9. Voorhees E M. Overview of the TREC 2001 Question Answering Track [R]. NIST, 2001. 定位:Task definitions, judgments and scoring sections. 稳定来源(访问 )。
  10. Wu Y et al.. Google’s Neural Machine Translation System — Bridging the Gap between Human and Machine Translation [R]. arXiv, 2016. arXiv:1609.08144v2. 定位:§§6, 8, especially §§8.6–8.7 and Table 10; Conclusion. 稳定来源(访问 )。
  11. Papineni K, Roukos S, Ward T, Zhu W-J. BLEU — a Method for Automatic Evaluation of Machine Translation [C]. ACL, 2002. 定位:§§2–5, especially footnote 4. DOI;稳定来源(访问 )。
  12. Post M. A Call for Clarity in Reporting BLEU Scores [C]. WMT, 2018. 定位:§§1–3. DOI;稳定来源(访问 )。
  13. Blodgett S L, Green L, O’Connor B. Demographic Dialectal Variation in Social Media — A Case Study of African-American English [C]. EMNLP, 2016. 定位:§§2, 4–6. DOI;稳定来源(访问 )。
  14. Joshi P et al.. The State and Fate of Linguistic Diversity and Inclusion in the NLP World [C]. ACL, 2020. 定位:§2 and coverage analysis. DOI;稳定来源(访问 )。
  15. Maynez J, Narayan S, Bohnet B, McDonald R. On Faithfulness and Factuality in Abstractive Summarization [C]. ACL, 2020. 定位:§§1–5. DOI;稳定来源(访问 )。
  16. Carlini N et al.. Extracting Training Data from Large Language Models [C]. USENIX Association, 2021. 定位:§§3–5 and 8. 稳定来源(访问 )。
  17. Bender E M, Friedman B. Data Statements for Natural Language Processing — Toward Mitigating System Bias and Enabling Better Science [J]. TACL, 2018. 定位:Data statement schema and discussion. DOI;稳定来源(访问 )。