查看全课大纲(第 8 / 69 节)
  1. 1.NLP 的研究领域、应用与学习路径
  2. 2.自然语言的基本术语
  3. 3.信息论基础:信息熵与交叉熵
  4. 4.语言的进化与语义变迁
  5. 5.主观概率、客观概率与条件概率
  6. 6.贝叶斯原理与推理
  7. 7.随机变量:二项式、期望方差与联合概率
  8. 8.常见概率分布
  9. 9.辛普森悖论与贝叶斯解题实例
  10. 10.语言模型:语言概率与词袋模型
  11. 11.n-gram 语言模型(二元 / 三元 / N-Gram)
  12. 12.语言模型评价:交叉熵、困惑度与插值
  13. 13.朴素贝叶斯文本分类:垃圾邮件
  14. 14.拼写检查
  15. 15.中文分词:构词法、最大匹配、最优路径与 Jieba
  16. 16.词表示问题与语义相似度
  17. 17.TF-IDF 权重处理
  18. 18.One-Hot 表达与词表示的局限
  19. 19.Word2Vec 核心思想
  20. 20.Word2Vec 训练过程
  21. 21.Skip-gram 模型详解
  22. 22.词性标注任务与标注方法(规则 + N-Gram)
  23. 23.EM 算法与混合模型
  24. 24.高斯混合模型 GMM
  25. 25.从混合模型到隐马尔可夫模型
  26. 26.隐马尔可夫模型(HMM)推导与维特比解码
  27. 27.线性链条件随机场 CRF
  28. 28.贝叶斯网络与图模型
  29. 29.隐马尔可夫链与 HMM 推导
  30. 30.PLSA 主题模型
  31. 31.LSI 与 SVD 向量表达
  32. 32.LDA 与狄利克雷分布
  33. 33.主题模型实验复现(困惑度 / 分类 / 相似度 / 延展)
  34. 34.上下文无关文法(CFG)与句法分析
  35. 35.概率上下文无关文法 PCFG
  36. 36.统计机器翻译:词对齐与翻译模型
  37. 37.统计机器翻译中的对齐模型与参数估计
  38. 38.从统计机器翻译到神经机器翻译
  39. 39.神经元与反向传播速览(指向深度学习课)
  40. 40.CNN 原理及其在 NLP 中的应用
  41. 41.循环神经网络的基本原理与 Elman / Jordan 网络
  42. 42.LSTM:长短期记忆网络的核心思想与分步实现
  43. 43.Encoder-Decoder 框架
  44. 44.Seq2Seq 与早期注意力机制
  45. 45.注意力机制的背景与动机
  46. 46.注意力模型实现原理与匹配函数
  47. 47.记忆网络:组成与计算
  48. 48.注意力机制的应用与历史延展
  49. 49.Transformer 结构:Encoder-Decoder 栈与 Self-Attention
  50. 50.Multi-Head Attention、FFNN 与位置编码
  51. 51.层归一化、损失函数与 Universal Transformer 延展
  52. 52.预训练范式:从 ELMo 到 BERT
  53. 53.BERT 与掩码语言模型
  54. 54.BERT 下游任务微调与 GLUE 口径
  55. 55.GPT 与自回归语言建模
  56. 56.GPT-1 到 GPT-4 的演进
  57. 57.指令微调与 RLHF
  58. 58.分词器:BPE、WordPiece 与中文词表
  59. 59.上下文窗口与长文本处理
  60. 60.能力边界、成本与适用场景
  61. 61.文本分类实战:从朴素贝叶斯到逻辑回归
  62. 62.命名实体识别实战
  63. 63.文本生成与摘要实战
  64. 64.语义检索与向量库实战
  65. 65.RAG 知识库问答
  66. 66.NLP 评估指标:BLEU / ROUGE / BERTScore 与人工评估
  67. 67.幻觉与事实性问题
  68. 68.文本与知识结合(知识图谱压缩)
  69. 69.跨媒体信息检索与未来展望

常见概率分布

小象实战讲义 · 自然语言处理

在掌握了概率论的基本概念,如联合概率、条件概率和独立性之后,我们需要了解一系列刻画不同随机现象的数学模型——概率分布。本节将系统介绍自然语言处理中常用的离散与连续概率分布,包括伯努利分布、二项式分布、多项式分布、泊松分布、高斯(正态)分布等。理解这些分布的定义、性质和应用场景,是后续学习语言模型、主题模型(如 LDA)等核心 NLP 技术的重要数学基础。

💡 核心导读

  • 离散分布:伯努利分布描述单次二元试验(如抛硬币);二项式分布描述多次独立伯努利试验的成功次数;多项式分布则推广到多类别试验(如掷骰子)。
  • 连续分布:高斯(正态)分布是自然界和统计学中最常见的对称钟形分布;伽马分布和贝塔分布具有更灵活的形态,常作为贝叶斯推断中的先验分布。
  • 分布家族:许多重要分布(如泊松、高斯、伽马)都属于指数分布族,具有统一的数学形式和优良的统计性质。
  • 从离散到连续:概率质量函数(PMF)用于离散随机变量,概率密度函数(PDF)用于连续随机变量,通过积分求概率。

联合概率、边缘概率与条件独立

在上一节的基础上,我们首先回顾并深化对联合概率的理解。给定两个随机变量 XX 和 YY,其联合概率 P(X,Y)P(X, Y) 描述了它们同时取特定值的概率。如果 XX 和 YY 相互独立,则联合概率等于各自概率的乘积:P(X,Y)=P(X)P(Y)P(X, Y) = P(X)P(Y)。否则,需要引入条件概率:P(X,Y)=P(X∣Y)P(Y)=P(Y∣X)P(X)P(X, Y) = P(X|Y)P(Y) = P(Y|X)P(X)。

对于一个二维的联合概率分布,我们可以通过“投影”来求取边缘概率。例如,对 YY 的所有可能取值求和,得到 XX 的边缘分布:P(X)=∑yP(X,Y=y)P(X) = \sum_{y} P(X, Y=y)。这相当于将二维概率分布“压扁”到 XX 轴上。同理可得 YY 的边缘分布 P(Y)P(Y)。

世界上纯粹的独立性是罕见的,更多时候我们面对的是条件独立。例如,“今天上课的内容”和“你午餐吃什么”看似独立,但如果考虑到“我们都生活在同一文化背景下”,它们之间就可能存在微弱的潜在联系。在严格的数学和模型构建中,我们通常假设在给定某些条件下,变量是独立的,这极大地简化了模型的复杂度。

从离散概率到连续概率密度

对于离散型随机变量,我们使用概率质量函数来描述其分布,所有可能取值的概率之和为1:∑xP(X=x)=1\sum_{x} P(X=x) = 1。

对于连续型随机变量,我们使用概率密度函数来描述。PDF 在某个区间 [a,b][a, b] 上的积分,等于随机变量落在该区间的概率: P(a≤X≤b)=∫abf(x)dxP(a \le X \le b) = \int_{a}^{b} f(x) dx 其中 f(x)f(x) 即为概率密度函数,它必须满足非负性,且在整个定义域上的积分为1:∫−∞∞f(x)dx=1\int_{-\infty}^{\infty} f(x) dx = 1。

可以这样直观理解:PDF 在某一点的值 f(x)f(x) 并不直接代表概率(点概率为0),而是代表了概率的“密度”或“浓度”。整个概率“质量”为1,分布在 xx 轴上,f(x)f(x) 高的地方,单位长度内聚集的概率质量就大。

常见离散概率分布

伯努利分布

伯努利分布是最简单的离散分布,描述一次只有两种可能结果的试验,例如抛一次硬币(正面/反面)、一次点击(点击/未点击)。

  • 概率质量函数:P(X=k)=pk(1−p)1−k,k∈0,1P(X=k) = p^k (1-p)^{1-k}, \quad k \in {0, 1}
    • 其中 pp 是试验结果为“成功”(通常编码为1)的概率。
    • k=1k=1 时,P(X=1)=pP(X=1)=p;k=0k=0 时,P(X=0)=1−pP(X=0)=1-p。
  • 期望(均值):E[X]=pE[X] = p
  • 方差:Var(X)=p(1−p)Var(X) = p(1-p)
# 伯努利分布示例:模拟一次抛硬币
import numpy as np

# 定义伯努利分布的参数:正面朝上的概率 p
p = 0.6
# 模拟一次伯努利试验
np.random.seed(42) # 固定随机种子以保证结果可复现
result = np.random.binomial(n=1, p=p) # n=1 即为伯努利试验
print(f"一次抛硬币试验结果(1为正面,0为反面): {result}")
print(f"理论概率:P(正面)={p}, P(反面)={1-p}")
一次抛硬币试验结果(1为正面,0为反面): 1
理论概率:P(正面)=0.6, P(反面)=0.4

二项式分布

二项式分布描述了 nn 次独立的伯努利试验中,“成功”次数 KK 的分布。例如,抛10次硬币,得到正面朝上的次数。

  • 概率质量函数:P(K=k)=(nk)pk(1−p)n−k,k=0,1,...,nP(K=k) = \binom{n}{k} p^k (1-p)^{n-k}, \quad k = 0, 1, ..., n
    • 其中 (nk)=n!k!(n−k)!\binom{n}{k} = \frac{n!}{k!(n-k)!} 是二项式系数,即组合数。
  • 期望:E[K]=npE[K] = np
  • 方差:Var(K)=np(1−p)Var(K) = np(1-p)

二项式系数与帕斯卡三角(杨辉三角)密切相关。三角的第 nn 层(从0开始计数)的系数正是 (x+y)n(x+y)^n 展开式的系数。将这些系数归一化(除以总和 2n2^n),就得到了 p=0.5p=0.5 时的二项式分布概率。

# 二项式分布示例:抛10次硬币,正面朝上的次数分布
import math

n = 10
p = 0.5
k_values = list(range(n+1))

# 计算二项式分布的概率质量
pmf_values = []
for k in k_values:
    comb = math.comb(n, k)  # 计算组合数 C(n, k)
    prob = comb * (p ** k) * ((1-p) ** (n-k))
    pmf_values.append(prob)

print("抛10次公平硬币,正面朝上次数的概率分布:")
for k, prob in zip(k_values, pmf_values):
    print(f"  P(K={k}) = {prob:.5f}")
print(f"所有概率之和: {sum(pmf_values):.10f}")
抛10次公平硬币,正面朝上次数的概率分布:
  P(K=0) = 0.00098
  P(K=1) = 0.00977
  P(K=2) = 0.04395
  P(K=3) = 0.11719
  P(K=4) = 0.20508
  P(K=5) = 0.24609
  P(K=6) = 0.20508
  P(K=7) = 0.11719
  P(K=8) = 0.04395
  P(K=9) = 0.00977
  P(K=10) = 0.00098
所有概率之和: 1.0000000000

多项式分布

多项式分布是二项式分布的推广,用于描述具有 KK 个可能结果的试验(如掷骰子,有6个面)重复 nn 次后,每种结果出现次数的联合分布。

  • 概率质量函数: P(X1=x1,X2=x2,...,XK=xK)=n!x1!x2!...xK!p1x1p2x2...pKxKP(X_1=x_1, X_2=x_2, ..., X_K=x_K) = \frac{n!}{x_1! x_2! ... x_K!} p_1^{x_1} p_2^{x_2} ... p_K^{x_K}
    • 其中 xix_i 是第 ii 种结果出现的次数,满足 ∑i=1Kxi=n\sum_{i=1}^K x_i = n。
    • pip_i 是单次试验中出现第 ii 种结果的概率,满足 ∑i=1Kpi=1\sum_{i=1}^K p_i = 1。
  • 应用:在 NLP 中,多项式分布常用于建模文档的词袋表示,其中 pip_i 可以看作是词 ii 在文档中出现的概率。

泊松分布

泊松分布描述了在固定时间或空间间隔内,某个稀有事件发生次数的概率分布。它通常用于建模低概率事件的发生频率,例如:

  • 一个客服中心每小时接到的电话数。
  • 一条河百年一遇的洪水在100年期间发生的次数。
  • 概率质量函数:P(X=k)=λke−λk!,k=0,1,2,...P(X=k) = \frac{\lambda^k e^{-\lambda}}{k!}, \quad k = 0, 1, 2, ...
    • 其中 λ>0\lambda > 0 是单位间隔内事件发生的平均次数(速率参数)。
  • 期望和方差:E[X]=Var(X)=λE[X] = Var(X) = \lambda

以“百年一遇洪水”为例,λ=1\lambda = 1(平均每百年发生一次)。计算在100年期间发生 kk 次洪水的概率:

  • P(k=0)=e−1≈0.368P(k=0) = e^{-1} \approx 0.368
  • P(k=1)=1⋅e−1≈0.368P(k=1) = 1 \cdot e^{-1} \approx 0.368
  • P(k=2)=(12/2!)⋅e−1≈0.184P(k=2) = (1^2/2!) \cdot e^{-1} \approx 0.184
  • 发生两次以上的概率迅速减小。P(k=0)P(k=0) 与 P(k=1)P(k=1) 并列最大,均约为 0.368;因此“百年一遇”只是平均频率,并不意味着每百年必然恰好发生一次。

指数分布

指数分布(exponential distribution)描述泊松过程中相邻两次事件之间的等待时间(到达间隔),注意它与下面的“指数分布族”不是同一概念。

  • 概率密度函数:f(x)=λe−λx,x≥0, λ>0f(x) = \lambda e^{-\lambda x}, \quad x \ge 0,\ \lambda > 0
  • 期望和方差:E[X]=1/λE[X] = 1/\lambda,Var(X)=1/λ2Var(X) = 1/\lambda^2
  • 无记忆性:P(X>s+t∣X>s)=P(X>t)P(X > s+t \mid X > s) = P(X > t),即已经等待了 ss 时间,剩余等待时间的分布与全新开始相同。
  • 指数分布是伽马分布在形状参数 α=1\alpha=1 时的特例。

常见连续概率分布

高斯(正态)分布

高斯分布是最重要、最常见的连续概率分布,其概率密度函数呈对称的钟形曲线。

  • 概率密度函数: f(x∣μ,σ2)=12πσ2exp⁡(−(x−μ)22σ2)f(x | \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
    • 其中 μ\mu 是均值(决定分布中心),σ2\sigma^2 是方差(决定分布的宽度)。
  • 性质:
    • 关于均值 μ\mu 对称。
    • 68-95-99.7 规则:大约68%的数据落在 [μ−σ,μ+σ][\mu-\sigma, \mu+\sigma] 内;95%落在 [μ−2σ,μ+2σ][\mu-2\sigma, \mu+2\sigma] 内;99.7%落在 [μ−3σ,μ+3σ][\mu-3\sigma, \mu+3\sigma] 内。这意味着数据高度集中在均值附近。
# 高斯分布的性质:用标准正态分布累积分布验证 3σ 规则
import math

def phi(x):
    # 标准正态分布 CDF,由误差函数计算(仅依赖标准库 math)
    return 0.5 * (1 + math.erf(x / math.sqrt(2)))

print("对于标准正态分布 N(0,1):")
for a, label in [(1, "μ±σ"), (2, "μ±2σ"), (3, "μ±3σ")]:
    prob = 2 * phi(a) - 1
    print(f"  落在 {label} 内的概率约为 {prob*100:.2f}%")
对于标准正态分布 N(0,1):
  落在 μ±σ 内的概率约为 68.27%
  落在 μ±2σ 内的概率约为 95.45%
  落在 μ±3σ 内的概率约为 99.73%

伽马分布与伽马函数

伽马函数 Γ(z)\Gamma(z) 是阶乘函数在实数域上的推广。对于正整数 nn,有 Γ(n)=(n−1)!\Gamma(n) = (n-1)!。

  • 定义:Γ(z)=∫0∞xz−1e−xdx,z>0\Gamma(z) = \int_0^{\infty} x^{z-1} e^{-x} dx, \quad z > 0
  • 它允许我们计算非整数的“阶乘”,例如 Γ(3.5)\Gamma(3.5)。

伽马分布是一个由形状参数 α\alpha 和速率参数 β\beta 定义的连续概率分布,其定义域为 (0,∞)(0, \infty)。

  • 概率密度函数: f(x∣α,β)=βαΓ(α)xα−1e−βx,x>0f(x | \alpha, \beta) = \frac{\beta^{\alpha}}{\Gamma(\alpha)} x^{\alpha-1} e^{-\beta x}, \quad x > 0
  • 伽马分布形态多样,可以呈现右偏、近似指数或近似正态的形状,比正态分布更灵活。它常作为贝叶斯统计中其他分布(如正态分布的精度)的共轭先验。

贝塔分布

贝塔分布是定义在区间 (0,1)(0, 1) 上的连续概率分布,由两个正参数 α\alpha 和 β\beta 控制。

  • 概率密度函数: f(x∣α,β)=xα−1(1−x)β−1B(α,β),0<x<1f(x | \alpha, \beta) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha, \beta)}, \quad 0 < x < 1
    • 其中 B(α,β)=Γ(α)Γ(β)Γ(α+β)B(\alpha, \beta) = \frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)} 是贝塔函数,作为归一化常数。
  • 性质:贝塔分布形态极其灵活。
    • 当 α=β=1\alpha = \beta = 1 时,退化为 (0,1)(0,1) 上的均匀分布。
    • 当 α,β>1\alpha, \beta > 1 时,呈单峰钟形。
    • 当 α,β<1\alpha, \beta < 1 时,呈 U 形(两端概率大,中间概率小)。
    • 当 α>1,β<1\alpha > 1, \beta < 1 时,呈左偏 J 形;反之呈右偏 J 形。
  • 应用:贝塔分布非常适合描述一个概率值 pp(例如伯努利试验的成功概率)本身的不确定性,因此它是二项式分布的共轭先验,在贝叶斯推断中极为重要。

对数正态分布

如果一个随机变量 XX 的对数 ln⁡X\ln X 服从正态分布,那么 XX 就服从对数正态分布。

  • 概率密度函数:若 Y=ln⁡X∼N(μ,σ2)Y = \ln X \sim N(\mu, \sigma^2),则 XX 的 PDF 为: f(x∣μ,σ)=1xσ2πexp⁡(−(ln⁡x−μ)22σ2),x>0f(x | \mu, \sigma) = \frac{1}{x\sigma\sqrt{2\pi}} \exp\left(-\frac{(\ln x - \mu)^2}{2\sigma^2}\right), \quad x > 0
  • 性质:分布右偏,具有长尾。许多现实世界的现象,如个人收入、城市规模、股票价格等,都近似服从对数正态分布,因为它们不能为负,且可能存在少数极大的值。

指数分布族

我们注意到,许多上述分布(泊松、高斯、伽马、贝塔等)的概率(密度)函数都可以写成以下统一形式: f(x∣θ)=h(x)exp⁡(η(θ)⋅T(x)−A(θ))f(x | \boldsymbol{\theta}) = h(x) \exp\left(\boldsymbol{\eta}(\boldsymbol{\theta}) \cdot \mathbf{T}(x) - A(\boldsymbol{\theta})\right) 其中 θ\boldsymbol{\theta} 是参数,T(x)\mathbf{T}(x) 是充分统计量,A(θ)A(\boldsymbol{\theta}) 是对数配分函数。能写成这种形式的分布统称为指数分布族。

属于指数分布族的分布具有许多优良的统计性质,例如:

  1. 存在充分统计量。
  2. 共轭先验易于找到。
  3. 可以用于广义线性模型。

在 NLP 中,后续将要学习的主题模型(如 LDA)所使用的狄利克雷分布,也属于指数分布族。

📝 动手练一练

  1. 概念辨析:伯努利分布、二项式分布和多项式分布之间有何联系与区别?请各举一个自然语言处理中的潜在应用场景。
👉 点击查看参考答案
  • 联系:
    • 伯努利分布是二项式分布的基础(n=1n=1 的二项式分布即为伯努利分布)。
    • 二项式分布是多项式分布的特例(当类别数 K=2K=2 时,多项式分布退化为二项式分布)。
  • 区别:
    • 伯努利分布:描述单次二元试验(成功/失败)。
    • 二项式分布:描述 nn 次独立伯努利试验中成功的总次数。
    • 多项式分布:描述 nn 次独立多类别试验中,各类别出现次数的联合分布。
  • NLP 应用场景举例:
    • 伯努利分布:建模一个词是否在文档中出现(忽略出现次数)的二元事件。
    • 二项式分布:在朴素贝叶斯文本分类中,可以用于建模在给定类别下,某个词在文档中出现的次数(简化版)。
    • 多项式分布:在词袋模型和多项朴素贝叶斯中,直接用于建模文档中所有词的计数分布,是更符合文本特性的模型。
  1. 手算练习:假设某搜索引擎中,用户查询与某广告相关的概率为 0.02(即点击率)。在一天内独立展示了该广告 1000 次。请利用二项式分布近似计算,这一天内该广告被点击次数不超过 30 次的概率是多少?(提示:可利用二项式分布的期望和方差,并思考其与正态分布的关系进行估算)。
👉 点击查看参考答案

这是一个 n=1000,p=0.02n=1000, p=0.02 的二项式分布问题,随机变量 XX 表示点击次数。

  • 期望 E[X]=np=1000∗0.02=20E[X] = np = 1000 * 0.02 = 20
  • 方差 Var(X)=np(1−p)=1000∗0.02∗0.98=19.6Var(X) = np(1-p) = 1000 * 0.02 * 0.98 = 19.6
  • 标准差 σ=19.6≈4.427\sigma = \sqrt{19.6} \approx 4.427

当 npnp 与 n(1−p)n(1-p) 都足够大、二项式分布偏度较小时,二项式分布 Bin(n,p)Bin(n, p) 可以用正态分布 N(np,np(1−p))N(np, np(1-p)) 近似。本例 np=20np=20、n(1−p)=980n(1-p)=980,二者均较大,可作正态近似。

我们要求 P(X≤30)P(X \le 30)。使用正态近似,并进行连续性校正(因为二项式是离散的,正态是连续的): P(X≤30)≈P(Z≤30+0.5−204.427)=P(Z≤10.54.427)≈P(Z≤2.372)P(X \le 30) \approx P\left( Z \le \frac{30 + 0.5 - 20}{4.427} \right) = P(Z \le \frac{10.5}{4.427}) \approx P(Z \le 2.372)

查标准正态分布表可知,P(Z≤2.372)≈0.991P(Z \le 2.372) \approx 0.991。

因此,一天内点击次数不超过30次的概率大约为 99.1%(正态近似;按精确二项式分布计算约为 98.74%,二者相差约 0.4 个百分点)。这说明在平均点击20次的情况下,点击30次已经是一个相对较少发生的事件(位于分布右尾)。

📝 动手练一练

  1. 概念辨析:假设我们有一个描述“抛掷一枚均匀硬币3次,正面朝上次数”的随机变量。请问描述单次抛掷结果的分布和描述三次抛掷后正面总次数的分布,分别对应本节介绍的哪种离散概率分布?并写出它们概率质量函数(PMF)中的关键参数。

  2. 手算练习:已知某二项式分布 B(n=5, p=0.6)。 a) 请计算恰好有3次成功的概率 P(K=3)。 b) 请计算成功次数不超过1次的概率 P(K ≤ 1)。 (提示:组合数 C(5,3)=10, C(5,1)=5, C(5,0)=1)

👉 点击查看参考答案
  1. 概念辨析:

    • 单次抛掷:结果是“正面”或“反面”,对应伯努利分布。其PMF为 P(X=k) = p^k (1-p)^{1-k},其中关键参数 p = 0.5(硬币均匀)。
    • 三次抛掷的正面总次数:结果可能是0,1,2,3,对应二项式分布。其PMF为 P(K=k) = C(3, k) * p^k * (1-p)^{3-k},其中关键参数 n = 3, p = 0.5。
  2. 手算练习: a) 计算 P(K=3): 根据二项分布PMF:P(K=3) = C(5,3) * (0.6)^3 * (0.4)^(5-3) = 10 * 0.216 * 0.16 = 0.3456 b) 计算 P(K ≤ 1) = P(K=0) + P(K=1): P(K=0) = C(5,0) * (0.6)^0 * (0.4)^5 = 1 * 1 * 0.01024 = 0.01024 P(K=1) = C(5,1) * (0.6)^1 * (0.4)^4 = 5 * 0.6 * 0.0256 = 0.0768 P(K ≤ 1) = 0.01024 + 0.0768 = 0.08704

    验证代码:

    import numpy as np
    
    # 参数
    n, p = 5, 0.6
    k_vals = np.array([0, 1, 3])
    
    # 手动计算组合数函数
    def comb(n, k):
        from math import factorial
        return factorial(n) // (factorial(k) * factorial(n - k))
    
    # 计算二项分布概率
    probs = [comb(n, k) * (p ** k) * ((1 - p) ** (n - k)) for k in k_vals]
    
    print(f"P(K=3) = {probs[2]:.4f}")  # 索引2对应k=3
    print(f"P(K≤1) = P(K=0)+P(K=1) = {probs[0]:.5f} + {probs[1]:.5f} = {probs[0]+probs[1]:.5f}")
P(K=3) = 0.3456
P(K≤1) = P(K=0)+P(K=1) = 0.01024 + 0.07680 = 0.08704

本章小结

本节系统梳理了自然语言处理中至关重要的概率分布知识体系。我们从联合概率与条件独立的概念出发,明确了离散与连续随机变量的描述工具(PMF 与 PDF)。随后,我们深入探讨了:

  1. 核心离散分布:伯努利(单次二元)、二项式(多次二元计数)、多项式(多类别计数)和泊松(稀有事件计数)分布的定义、公式与应用。
  2. 核心连续分布:高斯(正态)分布的对称性与 3σ3\sigma 法则;伽马分布与贝塔分布的形态灵活性及其在贝叶斯推断中的先验作用;对数正态分布的长尾特性。
  3. 统一视角:认识到许多重要分布都属于指数分布族,这为后续学习更复杂的概率模型(如主题模型)奠定了理论基础。

理解这些分布不仅是掌握概率统计的关键,更是后续学习语言模型、文本分类、主题发现等 NLP 核心技术的必备前提。它们为我们提供了量化语言现象不确定性的数学语言。

📋 行动清单

  • 默写出伯努利、二项式、高斯分布的 PDF/PMF 公式及其期望、方差。
  • 用 Python(仅用 numpy 和 math)编写函数,计算给定参数下二项式分布和正态分布在指定区间的概率(或概率密度),并验证二项式分布的正态近似。
  • 思考并举例说明,在您熟悉的某个 NLP 任务(如情感分析、垃圾邮件过滤)中,哪个概率分布可能被用来建模其中的某个关键随机变量。

—— 小象教研组