跳到正文

第3章笔记:统计语言模型

课程笔记

从链式法则和n-gram走到平滑、回退、Kneser–Ney、困惑度与解码。

关联:章节 第3章 统计语言模型

第3章笔记:统计语言模型

本章任务

从链式法则和n-gram走到平滑、回退、Kneser–Ney、困惑度与解码。 先用一条能人工判断的短文本、标签序列、语法树或检索集合建立基准,再让代码输出完整中间证据,最后在真实语料、困难语言切片和生产约束下验收。

七节连接

  • 语言模型与链式法则:语言模型给序列概率,可用链式法则分解为逐位置条件概率;概率口径必须包括起止符。 核心关系:P(w1...wn)=product_i P(w_i|w_<i)。 算例:P(我)=.2,P(来|我)=.5,P(了|我来)=.4,序列概率.04。 边界:只乘词频不归一;漏掉EOS使不同长度不可比。
  • n-gram计数与最大似然:n-gram用有限历史近似完整上下文,MLE由条件计数比得到;未见组合概率为零。 核心关系:P_MLE(w|h)=count(h,w)/count(h)。 算例:历史h出现10次,其中接w3次,MLE=.3。 边界:训练测试标记规则不同;把文档边界跨接成伪n-gram。
  • 马尔可夫假设与模型阶数:更高阶n-gram保留更多局部上下文但参数更稀疏;阶数需用验证集和领域切片选择。 核心关系:k-order approximation P(w_i|w_<i)≈P(w_i|w_{i-k:i-1})。 算例:三元模型看前2词;句首需补2个BOS符号。 边界:只因训练困惑度下降选择高阶;稀有历史全部零概率。
  • 加k平滑与概率质量:加k给未见事件伪计数并重新归一,会从已见事件转移概率质量;k大小影响偏差。 核心关系:P=(count+k)/(history_count+kV)。 算例:count=3、history=10、V=5、k=1,概率4/15≈.2667。 边界:只给分子加k不改分母;大词表用加一严重过平滑。
  • 回退、插值与未知历史:回退在高阶无可靠计数时用低阶,插值始终混合多个阶;权重必须非负且和为1。 核心关系:P=lambda3 P3+lambda2 P2+lambda1 P1。 算例:权重.5,.3,.2,概率.4,.2,.1,混合=.28。 边界:权重按词改变却不重新归一;回退质量未扣除已分配概率。
  • Kneser–Ney与续接概率:Kneser–Ney折扣高阶计数,并让低阶概率反映一个词出现在多少种不同历史后,而非总频次。 核心关系:P_cont(w)=distinct histories preceding w/total distinct bigrams。 算例:词w出现在4种历史后,总不同bigram20,续接概率.2。 边界:把普通unigram频率冒充续接概率;折扣后概率和不为1。
  • 交叉熵、困惑度与解码:平均负对数概率衡量预测难度,困惑度是其指数;比较必须用相同tokenization、对数底和序列集合。 核心关系:PP=exp(-(1/N)Σ ln P(token_i))。 算例:平均负自然对数为ln4,困惑度4。 边界:不同词表困惑度直接横比;删除OOV句子后报告更低PP。

实验要求

运行本章两道Python语言算法实验的四组测试,并新增空文本、Unicode边界、未知词、非法标签、句法歧义、否定、长上下文、低资源语言、域外、证据冲突或提示注入中的至少一种。保存原文hash/offset、Tokenizer、数据与模型版本、随机种子、中间格表/结构/概率、输出、证据和首个偏差。

错题闭环

按字符/token/offset、规范化、概率分母、动态规划状态、标签约束、句法结构、语义作用域、训练测试泄漏、检索召回、引用蕴含、校准、隐私和工具授权分类。更换一个词频、上下文、标签、阈值、候选数、语言或证据版本重做阶段卷;能先预测变化方向,再复算并解释失效,才算掌握。