我如何修复我的代码而不是调用浮点数?

时间:2015-12-29 23:19:32

标签: python

我正在尝试计算贝叶斯公式的垃圾邮件,但我收到此错误:

 error TypeError: 'float' object is not callable

这是我的代码:

spamicities = sorted(
    map(self.classify_word(body) ,re.sub("[^\w]", " ",  body).split()),
    key=lambda x: abs(x-0.5),
    reverse=True)[:38]

2 个答案:

答案 0 :(得分:0)

这是正确的代码:

 spamicities = sorted(
                map(lambda body: self.classify_word(body) ,re.sub("[^\w]", " ",  body).split()),
                key=lambda x: abs(x-0.5),
                reverse=True
                )[:38]

答案 1 :(得分:0)

尝试简化您的问题。看看

async#each

此行不起作用,因为map(self.classify_word(body) ,re.sub("[^\w]", " ", body).split()) self.classify_word(body)值替换,因此该行变为类似

Float

你需要一个callable作为第一个参数,所以将它包装在一个匿名函数中,如下所示:

map(5.0 ,re.sub("[^\w]", " ",  body).split())  # wrong!