接上次:https://blog.csdn.net/cyr429/article/details/102873031
2.3 多项事件模型与文本分类
之前讨论了将朴素贝叶斯运用于多元伯努利分布来实现文本分类的问题,但是这个模型有个问题就是不会统计某个词在一封邮件中出现的次数,所以我们考虑另一种模型。
首先改变的是表示一封邮件的方式,之前我们用0011000...这样的布尔向量表达一封邮件,序列中0或1的位置对应词汇中相应单词的位置,而这里则是则是使用一组d维整型向量x=(x1,..,xd)。d是这封邮件的长度,xj是这封邮件第j个单词的identity,如果xj位置的单词是词汇表中的第k个单词,则xj=k,所以x的取值范围是词汇集的大小,xj取值于{0,1,...,|V|}, |V|是词汇集的大小。
现在有了特征向量,我们需要建立一个生成模型,那么我们就需要为p(x|y)建模。和前一部分一样,如果词汇中有50000个单词,而要处理的邮件由100个单词组成,那么在多项分布的模型中就有产生50000^100种输出,那么我们就需要50000^100-1维度的参数向量,实在是太多了。
所以朴素贝叶斯假设就又派上用场了:
如果我们有一个训练集,其中xi=,di是第i个训练样本邮件中单词总数,那么对数似然函数就是: