Howdy.

I am testing this out to see how it goes.  Early results show it marking a lot 
of things as Spam that I don’t expect to see…I did notice this as I was 
training it up:

Feb 28 13:18:07.029 [169364] dbg: config: read file 
/etc/mail/spamassassin/NeuralNetwork.pre
Feb 28 13:18:07.030 [169364] dbg: config: read file 
/etc/mail/spamassassin/NeuralNetwork.cf
Feb 28 13:18:07.031 [169364] dbg: config: parsing file 
/etc/mail/spamassassin/NeuralNetwork.pre
Feb 28 13:18:07.031 [169364] dbg: config: fixed relative path: 
/etc/mail/spamassassin/NeuralNetwork.pm
Feb 28 13:18:07.031 [169364] dbg: plugin: loading 
Mail::SpamAssassin::Plugin::NeuralNetwork from 
/etc/mail/spamassassin/NeuralNetwork.pm
Feb 28 13:18:07.817 [169364] dbg: config: parsing file 
/etc/mail/spamassassin/NeuralNetwork.cf
Feb 28 13:18:07.974 [169364] dbg: plugin: 
Mail::SpamAssassin::Plugin::NeuralNetwork=HASH(0x55631d0005a0) implements 
'finish_parsing_end', priority 0
Feb 28 13:18:07.991 [169364] dbg: NeuralNetwork: SQL connection initialized for 
vocabulary storage
Feb 28 13:18:10.212 [169364] dbg: NeuralNetwork: Loaded 748 vocabulary terms 
from SQL for user: spam
Feb 28 13:18:10.212 [169364] dbg: NeuralNetwork: Insufficient spam/ham data for 
prediction: spam=158, ham=0
Feb 28 13:18:10.212 [169364] dbg: NeuralNetwork: Not enough tokens found
Feb 28 13:18:10.289 [169364] dbg: plugin: 
Mail::SpamAssassin::Plugin::NeuralNetwork=HASH(0x55631d0005a0) implements 
'autolearn', priority 0
Feb 28 13:18:10.293 [169364] dbg: plugin: 
Mail::SpamAssassin::Plugin::NeuralNetwork=HASH(0x55631d0005a0) implements 
'learn_message', priority 0
Feb 28 13:18:10.293 [169364] dbg: NeuralNetwork: autolearning disabled, quitting

Even though I am feeding ham in, it doesn’t seem to be tagging anything as ham 
(or, at least, the counter is not being set correctly).  I have fed stuff in 
via sa-learn —ham, as well as through the normal auto-learning process (which I 
have set to 1).

I didn’t see any way to get the spam/ham token counts after this message 
disappears.  Perhaps that could be added to sa-learn —dump magic (or add 
another option there).  

Any thoughts as to whether or not this is properly loading ham in correctly?  I 
downloaded it from GitHub today (2/28) so I should have the latest code 
installed.

Cheers,

David.

——

> On Feb 24, 2026, at 7:59 PM, Kent Oyer <[email protected]> wrote:
> 
> I haven't had time to play with this plugin, but my understanding of this 
> type of NN is that it doesn't work well with incremental training. Meaning 
> that if just one item is added to the training set, the whole learning 
> process needs to be re-run. Otherwise the model adjusts it's weights to match 
> the new sample at the expense of all previous samples. I'm just wondering if 
> you've run into this and if you have any preliminary accuracy statistics from 
> this plugin.
> 
> 
> 
> On Tue, Dec 30, 2025 at 03:33 AM, Giovanni Bechis <[email protected]> wrote:
> ------------------------------------------------------------------------------------------------------------------
> CAUTION: External email from: gbechis@‌apache.‌org
> Use caution before clicking on links or opening attachments.
> ------------------------------------------------------------------------------------------------------------------
> Hi,
> I've just committed to my Github repo the first version of a SpamAssassin 
> plugin that uses Neural Networks to detect spam messages.
> Code is available at https://github.com/bigio/spamassassin-NeuralNetwork , if 
> the community is interested I can work on merging it to the Apache 
> SpamAssassin src tree.
> Testers are always welcome.
> Cheers
> Giovanni
> -- 
> Giovanni Bechis
> V.P. Apache SpamAssassin
> [email protected] <mailto:[email protected]>

Reply via email to