Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

B.3 完整示例

下面通过一个例子说明如何用加一平滑训练和测试朴素贝叶斯。我们采用包含正面(+)和负面(−)两类的情感分析领域,并使用下面这些由真实电影评论简化而来的微型训练与测试文档。

类别文档
训练− just plain boring
− entirely predictable and lacks energy
− no surprises and very few laughs
+ very powerful
+ the most fun film of the summer
测试? predictable with no fun

根据式(B.11),用 Nc/NdocN_c/N_{doc} 计算两类的先验 P(c)P(c)

P()=35,P(+)=25P(-)=\frac35,\qquad P(+)=\frac25

with 没有出现在训练集中,所以完全将它删除(如上所述,朴素贝叶斯不使用未知词模型)。根据式(B.14),训练集中其余三个词 predictablenofun 的似然如下(其余训练词的概率留给读者练习):

P(predictable)=1+114+20,P(predictable+)=0+19+20,P(no)=1+114+20,P(no+)=0+19+20,P(fun)=0+114+20,P(fun+)=1+19+20.\begin{array}{rlrl} P(\text{predictable}\mid -)&=\frac{1+1}{14+20},&P(\text{predictable}\mid +)&=\frac{0+1}{9+20},\\ P(\text{no}\mid -)&=\frac{1+1}{14+20},&P(\text{no}\mid +)&=\frac{0+1}{9+20},\\ P(\text{fun}\mid -)&=\frac{0+1}{14+20},&P(\text{fun}\mid +)&=\frac{1+1}{9+20}. \end{array}

对测试句 S=S=“predictable with no fun”,删去 with 后,根据式(B.9)计算所选类别:

P()P(S)=35×2×2×1343=6.1×105,P(+)P(S+)=25×1×1×2293=3.2×105.\begin{array}{rl} P(-)P(S\mid -)&=\frac35\times\frac{2\times2\times1}{34^3}=6.1\times10^{-5},\\ P(+)P(S\mid +)&=\frac25\times\frac{1\times1\times2}{29^3}=3.2\times10^{-5}. \end{array}

因此,模型把测试句预测为负面类别。