Python中垃圾邮件过滤的绝对值

时间:2018-07-27 22:45:21

标签: python-3.x email-spam

有关垃圾邮件过滤功能的绝对值分配的问题,该功能确定电子邮件是否为垃圾邮件的可能性。

使用公式的“兴趣商”(IQ): IQ = | 0.5-s | ,其中 s 是一个单词的垃圾邮件概率,范围从0到1。

假设s('money')返回0.80,因为它是垃圾邮件,而s('object')返回0.20。要计算整个邮件的垃圾邮件概率,必须将每个单词都考虑在内,因此使用IQ公式时,单词“ money”和“ object”都将被赋予0.30的值。

我的问题是,如何使Python区分相同的绝对值?因为提供给我的伪代码要求我使用“有趣商数”,这是我的伪代码,仅用于计算绝对值,因此它可能有许多语法错误,但目前我不太在意它们。

def combined_probability(que):
    holder = []
    x = []
    j = 0
    p = 0
    for val in iter(que.get, None):
        holder.append(val)
    x = holder[::2]
    for i in range(len(x)):
        x[i] = 0.5 - x[i]
        if x[i] < 0:
            p += 1
            continue
        j += x[i]
        p += 1 
    j = j / p
    return 'probability of this message being spam is ' + str('j')

s = WordQue(15)
s.insert('money', 0.8)
s.insert('object', 0.2)
s.insert('the', 0.5)
print(combined_probability(s))

从本质上讲,我所做的是丢弃表示垃圾邮件单词的任何负值,因为如果该单词是垃圾邮件,则当我将好的单词除以单词总数时,将不会考虑该单词。但是,我不确定这是您如何在Python中计算绝对值。

0 个答案:

没有答案