mirror of
https://github.com/rspamd/rspamd.git
synced 2024-09-13 23:56:50 +02:00
d9688f961e
to avoid redefining everything in the classifier configuration.
78 lines
2.1 KiB
Plaintext
78 lines
2.1 KiB
Plaintext
# Please don't modify this file as your changes might be overwritten with
|
|
# the next update.
|
|
#
|
|
# You can modify '$LOCAL_CONFDIR/rspamd.conf.local.override' to redefine
|
|
# parameters defined on the top level
|
|
#
|
|
# You can modify '$LOCAL_CONFDIR/rspamd.conf.local' to add
|
|
# parameters defined on the top level
|
|
#
|
|
# For specific modules or configuration you can also modify
|
|
# '$LOCAL_CONFDIR/local.d/file.conf' - to add your options or rewrite defaults
|
|
# '$LOCAL_CONFDIR/override.d/file.conf' - to override the defaults
|
|
#
|
|
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
|
|
|
|
# Rspamd statistic setup
|
|
# Pre-build files could be loaded from:
|
|
# http://rspamd.com/rspamd_statistics/bayes.spam.sqlite
|
|
# - and -
|
|
# http://rspamd.com/rspamd_statistics/bayes.ham.sqlite
|
|
|
|
classifier "bayes" {
|
|
tokenizer {
|
|
name = "osb";
|
|
}
|
|
cache {
|
|
path = "${DBDIR}/learn_cache.sqlite";
|
|
}
|
|
min_tokens = 11;
|
|
backend = "sqlite3";
|
|
languages_enabled = true;
|
|
min_learns = 200;
|
|
|
|
statfile {
|
|
symbol = "BAYES_HAM";
|
|
path = "${DBDIR}/bayes.ham.sqlite";
|
|
spam = false;
|
|
}
|
|
statfile {
|
|
symbol = "BAYES_SPAM";
|
|
path = "${DBDIR}/bayes.spam.sqlite";
|
|
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 is_unlearn and (not in_class) then
|
|
return false,string.format('not in class %s; probability %.2f%%%%',
|
|
cl, math.abs((prob - 0.5) * 200.0))
|
|
elseif (not is_unlearn) and 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
|
|
|
|
.include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/classifier-bayes.conf"
|
|
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/classifier-bayes.conf"
|
|
}
|
|
|
|
.include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/statistic.conf"
|
|
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/statistic.conf"
|