aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-10-09 20:54:10 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-10-09 20:54:10 +0100
commitba01e88c8520cc09be7c2f0a387d76c6be04b08f (patch)
tree1af693fd3d6ceeb12941aff3f7388cb64afd96a2 /src
parent3d0a1252f12c8d18b959e6cd3367733160d976a4 (diff)
downloadrspamd-ba01e88c8520cc09be7c2f0a387d76c6be04b08f.tar.gz
rspamd-ba01e88c8520cc09be7c2f0a387d76c6be04b08f.zip
[Feature] Add support of min_learns to neural net classifier
Diffstat (limited to 'src')
-rw-r--r--src/plugins/lua/fann_scores.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/lua/fann_scores.lua b/src/plugins/lua/fann_scores.lua
index c67eb597d..82b0d658c 100644
--- a/src/plugins/lua/fann_scores.lua
+++ b/src/plugins/lua/fann_scores.lua
@@ -727,6 +727,24 @@ if redis_params then
rspamd_classifiers['neural'] = {
classify = function(task, classifier, tokens)
local function classify_cb(task)
+ local min_learns = classifier:get_param('min_learns')
+
+ if min_learns then
+ min_learns = tonumber(min_learns)
+ end
+
+ if min_learns and min_learns > 0 then
+ if current_classify_ann.ham_learned < min_learns or
+ current_classify_ann.spam_learned < min_learns then
+
+ rspamd_logger.infox(task, 'fann classifier has not enough learns: (%s spam, %s ham), %s required',
+ current_classify_ann.spam_learned, current_classify_ann.ham_learned,
+ min_learns)
+ return
+ end
+ end
+
+ -- Perform classification
local vec = tokens_to_vector(tokens)
add_metatokens(task, vec)
local out = current_classify_ann.ann:test(vec)