]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add new config options to classifiers
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 15 Nov 2018 12:41:22 +0000 (12:41 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 15 Nov 2018 12:41:22 +0000 (12:41 +0000)
src/libserver/cfg_file.h
src/libserver/cfg_rcl.c
src/libserver/cfg_utils.c

index f1d9eb939fa5027c7c8da1d5498fe96acb01504d..c507bf3a90b9acd95cb56cc4ee58dd3eb00dff7d 100644 (file)
@@ -174,6 +174,8 @@ struct rspamd_classifier_config {
        gchar *name;                                    /**< unique name of classifier                                                  */
        guint32 min_tokens;                             /**< minimal number of tokens to process classifier     */
        guint32 max_tokens;                             /**< maximum number of tokens                                                   */
+       guint min_token_hits;                           /**< minimum number of hits for a token to be considered */
+       gdouble min_prob_strength;                      /**< use only tokens with probability in [0.5 - MPS, 0.5 + MPS] */
        guint min_learns;                               /**< minimum number of learns for each statfile                 */
        guint flags;
 };
index e44051c9d477522e7f8597653eb06f808559717e..3df4ce05d23472b3da8173f17894912d7bfc27e2 100644 (file)
@@ -2147,6 +2147,18 @@ rspamd_rcl_config_init (struct rspamd_config *cfg, GHashTable *skip_sections)
                                G_STRUCT_OFFSET (struct rspamd_classifier_config, min_tokens),
                                RSPAMD_CL_FLAG_INT_32,
                                "Minimum count of tokens (words) to be considered for statistics");
+               rspamd_rcl_add_default_handler (sub,
+                               "min_token_hits",
+                               rspamd_rcl_parse_struct_integer,
+                               G_STRUCT_OFFSET (struct rspamd_classifier_config, min_token_hits),
+                               RSPAMD_CL_FLAG_UINT,
+                               "Minimum number of hits for a token to be considered");
+               rspamd_rcl_add_default_handler (sub,
+                               "min_prob_strength",
+                               rspamd_rcl_parse_struct_double,
+                               G_STRUCT_OFFSET (struct rspamd_classifier_config, min_token_hits),
+                               0,
+                               "Use only tokens with probability in [0.5 - MPS, 0.5 + MPS]");
                rspamd_rcl_add_default_handler (sub,
                                "max_tokens",
                                rspamd_rcl_parse_struct_integer,
index 198e555307fd3725ccca4477a852a97362ae0010..45f289e8964ca17fb9c096231d6f66b3a7b4a94d 100644 (file)
@@ -971,7 +971,10 @@ rspamd_config_new_classifier (struct rspamd_config *cfg,
                c =
                        rspamd_mempool_alloc0 (cfg->cfg_pool,
                                sizeof (struct rspamd_classifier_config));
+               c->min_prob_strength = 0.343;
+               c->min_token_hits = 2;
        }
+
        if (c->labels == NULL) {
                c->labels = g_hash_table_new_full (rspamd_str_hash,
                                rspamd_str_equal,