diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-10-09 20:54:10 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-10-09 20:54:10 +0100 |
commit | ba01e88c8520cc09be7c2f0a387d76c6be04b08f (patch) | |
tree | 1af693fd3d6ceeb12941aff3f7388cb64afd96a2 /src | |
parent | 3d0a1252f12c8d18b959e6cd3367733160d976a4 (diff) | |
download | rspamd-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.lua | 18 |
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) |