rspamd_rcl_add_default_handler(sub,
"min_prob_strength",
rspamd_rcl_parse_struct_double,
- G_STRUCT_OFFSET(struct rspamd_classifier_config, min_token_hits),
+ G_STRUCT_OFFSET(struct rspamd_classifier_config, min_prob_strength),
0,
"Use only tokens with probability in [0.5 - MPS, 0.5 + MPS]");
rspamd_rcl_add_default_handler(sub,
double fisher_result = inv_chi_square(task, max_log_prob, cl.processed_tokens);
confidence = 1.0 - fisher_result;
+ msg_debug_bayes("fisher_result: %g, max_log_prob: %g, condition check: fisher_result > 0.999 = %s, max_log_prob > -50 = %s",
+ fisher_result, max_log_prob,
+ fisher_result > 0.999 ? "true" : "false",
+ max_log_prob > -50 ? "true" : "false");
+
/* Handle case where Fisher method indicates extreme confidence */
- if (fisher_result >= 1.0 && max_log_prob > -50) {
+ if (fisher_result > 0.999 && max_log_prob > -100) {
/* Large magnitude negative log prob means strong evidence */
confidence = 0.90;
msg_debug_bayes("extreme negative log_prob (%g), setting high confidence", max_log_prob);
*** Settings ***
+Library OperatingSystem
Resource lib.robot
*** Variables ***
*** Keywords ***
Learn Multiclass
[Arguments] ${user} ${class} ${message}
+ # Extract filename from message path for queue-id
+ ${path} ${filename} = Split Path ${message}
IF "${user}"
- ${result} = Run Rspamc -d ${user} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_class:${class} ${message}
+ ${result} = Run Rspamc -d ${user} --queue-id ${filename} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_class:${class} ${message}
ELSE
- ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_class:${class} ${message}
+ ${result} = Run Rspamc --queue-id ${filename} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_class:${class} ${message}
END
Check Rspamc ${result}
Learn Multiclass Legacy
[Arguments] ${user} ${class} ${message}
# Test backward compatibility with old learn_spam/learn_ham commands
+ # Extract filename from message path for queue-id
+ ${path} ${filename} = Split Path ${message}
IF "${user}"
- ${result} = Run Rspamc -d ${user} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
+ ${result} = Run Rspamc -d ${user} --queue-id ${filename} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
ELSE
- ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
+ ${result} = Run Rspamc --queue-id ${filename} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
END
Check Rspamc ${result}
min_learns = 1;
min_tokens = 1;
+ min_token_hits = 1;
min_prob_strength = 0.05;
{% if env.STATS_PER_USER ~= '' %}