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]>
