[Rspamd] Remove per_user settings as they were pretty much useless, some minor changes to bayes"
parent
63ce1ba2d6
commit
e2ed2eab53
|
@ -1,29 +1,13 @@
|
|||
classifier "bayes" {
|
||||
tokenizer {
|
||||
name = "osb";
|
||||
name = "osb";
|
||||
}
|
||||
|
||||
autolearn = false;
|
||||
backend = "redis";
|
||||
name = "per_domain_bayes";
|
||||
min_tokens = 11;
|
||||
min_learns = 20;
|
||||
min_learns = 5;
|
||||
new_schema = true;
|
||||
expiry = 50d;
|
||||
per_user = <<EOD
|
||||
return function(task)
|
||||
local rcpt = task:get_recipients(1)
|
||||
|
||||
if rcpt then
|
||||
one_rcpt = rcpt[1]
|
||||
if one_rcpt['domain'] then
|
||||
return one_rcpt['domain']
|
||||
end
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
EOD
|
||||
|
||||
expire = 2592000;
|
||||
statfile {
|
||||
symbol = "BAYES_HAM";
|
||||
spam = false;
|
||||
|
@ -32,28 +16,4 @@ EOD
|
|||
symbol = "BAYES_SPAM";
|
||||
spam = true;
|
||||
}
|
||||
learn_condition =<<EOD
|
||||
return function(task, is_spam, is_unlearn)
|
||||
local prob = task:get_mempool():get_variable('bayes_prob', 'double')
|
||||
|
||||
if prob then
|
||||
local in_class = false
|
||||
local cl
|
||||
if is_spam then
|
||||
cl = 'spam'
|
||||
in_class = prob >= 0.95
|
||||
else
|
||||
cl = 'ham'
|
||||
in_class = prob <= 0.05
|
||||
end
|
||||
|
||||
if in_class then
|
||||
return false,string.format('already in class %s; probability %.2f%%',
|
||||
cl, math.abs((prob - 0.5) * 200.0))
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
EOD
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue