summaryrefslogtreecommitdiffstats
path: root/src/libstat/classifiers/bayes.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-04-19 09:32:47 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-04-19 09:32:47 +0100
commitdd061a3fd83860f26522f0cc4e44e5be2488614d (patch)
tree08d8cd122894bcf2cde90f02ec3cde2a9be86ef0 /src/libstat/classifiers/bayes.c
parent8778b569f84e566f4c1c059a3e42e47181fe2beb (diff)
downloadrspamd-dd061a3fd83860f26522f0cc4e44e5be2488614d.tar.gz
rspamd-dd061a3fd83860f26522f0cc4e44e5be2488614d.zip
[Feature] Add min learns to classifiers
Diffstat (limited to 'src/libstat/classifiers/bayes.c')
-rw-r--r--src/libstat/classifiers/bayes.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libstat/classifiers/bayes.c b/src/libstat/classifiers/bayes.c
index 912fa5c2d..867fe4dc6 100644
--- a/src/libstat/classifiers/bayes.c
+++ b/src/libstat/classifiers/bayes.c
@@ -211,6 +211,24 @@ bayes_classify (struct rspamd_classifier * ctx,
memset (&cl, 0, sizeof (cl));
cl.task = task;
+ /* Check min learns */
+ if (ctx->cfg->min_learns > 0) {
+ if (ctx->ham_learns < ctx->cfg->min_learns) {
+ msg_info_task ("skip classification as ham class has not enough "
+ "learns: %ul, %ud required",
+ ctx->ham_learns, ctx->cfg->min_learns);
+
+ return TRUE;
+ }
+ if (ctx->spam_learns < ctx->cfg->min_learns) {
+ msg_info_task ("skip classification as spam class has not enough "
+ "learns: %ul, %ud required",
+ ctx->spam_learns, ctx->cfg->min_learns);
+
+ return TRUE;
+ }
+ }
+
for (i = 0; i < tokens->len; i ++) {
tok = g_ptr_array_index (tokens, i);