在判断一封邮件是否为垃圾邮件时,我们通常需要对其进行分词处理。然而,在分词之后可能会出现重复的词语,那么这些重复的词语应该如何处理呢?以下是三种处理方式:
假设有一封垃圾邮件的内容是“代开发票。增值税发票,正规发票”。我们将它分词处理为(“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)。可以看到,“发票”出现了三次。接下来,我们将讨论不同的模型在处理这种情况时的不同方法。
在多项式模型中,当统计P(“发票”|S)时,每个被统计的垃圾邮件样本中的重复词语也会被统计多次,而不是只统计一次。
在伯努利模型中,重复的词语都被视为只出现了一次。因此,即使某个词语出现了多次,统计计算P(“词语”|S)时也只按一次处理。
由于重复的词语按一次统计,那么P("发票"|S) = 含有发票的邮件数量(无论出现多少次都按一次处理)/ 垃圾邮件中总词数(去重后的总词数)
分母中为每封垃圾邮件中所有词的总个数(每封不重复,一封中出现十次表示一次,另一封出现一次则表示两次)。
在计算句子概率时(测试阶段),不考虑重复词语出现的次数。但在统计(训练阶段)计算词语的概率P(“词语”|S)时,则会考虑重复词语出现的次数,即在分词时不进行去重。
伯努利模型更为简单方便,但会丢失词频信息。相比之下,混合模型在识别垃圾邮件方面表现得更好。