svn commit: r1932042 - spamassassin/trunk/lib/Mail/SpamAssassin/Plugin

[email protected]
Newsgroups gmane.mail.spam.spamassassin.cvs
Message-ID <177200868319.1324369.12654250557533474346@svn02-us-east.apache.org>
Author: gbechis
Date: Wed Feb 25 08:38:02 2026
New Revision: 1932042

Log:
retrain from vocabulary if available

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NeuralNetwork.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NeuralNetwork.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NeuralNetwork.pm	Wed Feb 25 08:30:16 2026	(r1932041)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/NeuralNetwork.pm	Wed Feb 25 08:38:02 2026	(r1932042)
@@ -599,9 +599,14 @@ sub learn_message {
   if(defined $self->{neural_model} && $self->{neural_model}->num_inputs() == $num_input) {
     $network = $self->{neural_model};
   } else {
-    $network = AI::FANN->new_standard($num_input, $num_hidden_neurons, $num_output_neurons);
-    $network->hidden_activation_function(FANN_SIGMOID_STEPWISE);
-    $network->output_activation_function(FANN_SIGMOID_STEPWISE);
+    # Vocabulary size changed, retrain from vocabulary statistics
+    $network = $self->_retrain_from_vocabulary($self->{main}->{conf}, $nn_data_dir, $num_input);
+    if (!defined $network) {
+      # No vocabulary stats available yet, create a fresh network
+      $network = AI::FANN->new_standard($num_input, $num_hidden_neurons, $num_output_neurons);
+      $network->hidden_activation_function(FANN_SIGMOID_STEPWISE);
+      $network->output_activation_function(FANN_SIGMOID_STEPWISE);
+    }
   }
   $network->learning_rate($learning_rate);
   $network->learning_momentum($momentum);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.