在判断一封邮件是否为垃圾邮件的过程中,我们通常需要先对其进行分词处理。然而,分词后可能会出现重复的词汇。针对这些重复的词汇,我们有三种处理方法:
假设有一封垃圾邮件的内容是“代开发票。增值税发票,正规发票”。我们将它分词处理为(“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)。可以看到,“发票”这个词出现了三次。接下来,我们将详细探讨不同模型对这种重复词汇的处理方式。
在多项式模型中,当统计垃圾邮件样本中的概率P(“发票”|S)时,每个重复的词汇都会被统计多次,而不是只统计一次。
在伯努利模型中,重复的词汇都被视为只出现一次。因此,在统计P(“词语”|S)时,即使某个词汇出现了多次,也只按一次处理。
由于每个重复的词汇只统计一次,所以P("发票"|S)的计算公式为:有发票的邮件数(无论出现多少次都按一次处理)/ 垃圾邮件中总词数(去除重复后的总词数)。
分母中的总词数是指每封垃圾邮件中所有单词的总数(不考虑重复,一封邮件中出现十次的单词只算一次,另一封邮件中出现一次的单词算一次)。
混合模型在计算句子的概率时不考虑重复词汇的出现次数,但在统计每个词汇的概率P(“词语”|S)时却考虑了重复词汇的出现次数。也就是说,在分词时不会去重。
伯努利模型更为简化且方便,但它丢失了词频的信息。对于垃圾邮件识别来说,混合模型可能更为有效。