Scroll to navigation

Mail::SpamAssassin::Plugin::NeuralNetwork(3pm) User Contributed Perl Documentation Mail::SpamAssassin::Plugin::NeuralNetwork(3pm)

NAME

Mail::SpamAssassin::Plugin::NeuralNetwork - check messages using Fast Artificial Neural Network library

SYNOPSIS

  loadplugin Mail::SpamAssassin::Plugin::NeuralNetwork

DESCRIPTION

This plugin checks emails using Neural Network algorithm.

CAVEATS

The SpamAssassin learning subsystem routes all training through the Bayes scanner infrastructure. As a result, "Mail::SpamAssassin::Plugin::Bayes" must be loaded and "use_bayes 1" must be set for this plugin's training to be triggered.

Whether to use Neural Network, if it is available.
Where NeuralNetwork plugin will store its data.
Minimum number of characters of visible text required to run prediction or learning on a message.
Minimum token length considered when building the vocabulary and feature vectors.
Maximum token length considered when building the vocabulary and feature vectors.
Maximum number of vocabulary terms to retain; least-frequent terms are pruned when exceeded.
Time-to-live in seconds for the in-memory vocabulary and model caches Set to 0 to disable caching.
Minimum number of spam messages in the vocabulary required to enable prediction.
Minimum number of ham messages in the vocabulary required to enable prediction.
Prediction values above this threshold are considered spam.
Prediction values below this threshold are considered ham.
Learning rate used by the underlying FANN network during incremental training.
Momentum used for training updates.
Number of training epochs to perform when learning a single message.
Algorithm used by Fann neural network used when training, might increase speed depending on the data volume.
Maximum number of seconds to wait for the exclusive training lock before giving up and skipping the learn operation. Set to 0 to wait indefinitely.
Delta value to apply to RPROP training replay loop.
Number of successful learn_message calls between forced full retrains of the neural network from the persisted vocabulary. After each retrain the incrementally-trained network is replaced with the freshly rebuilt one. Set to 0 to disable periodic retraining and keep online learning only.
Space-separated list of stopwords to ignore when tokenizing text.
When SpamAssassin declares a message a clear spam or ham during the message scan, and launches the auto-learn process, message is autolearned as spam/ham in the same way as during the manual learning. Value 0 at this option disables the auto-learn process for this plugin.
When set to 1 and auto-learn is enabled, autolearned messages update the vocabulary and training buffer but skip FANN model training and saving. This avoids slow I/O operations and temporary files during "spamd" processing. The model is rebuilt from the accumulated vocabulary on the next manual "sa-learn" run.
The DBI dsn of the database to use.

For SQLite, the database will be created automatically if it does not already exist, the supplied path and file must be read/writable by the user running spamassassin or spamd.

For MySQL/MariaDB or PostgreSQL, see sql-directory for database table creation clauses.

You will need to have the proper DBI module for your database. For example DBD::SQLite, DBD::mysql, DBD::MariaDB or DBD::Pg.

Minimum required SQLite version is 3.24.0 (available from DBD::SQLite 1.59_01).

Examples:

 neuralnetwork_dsn dbi:SQLite:dbname=/var/lib/spamassassin/NeuralNetwork.db
    
The username that should be used to connect to the database. Not used for SQLite.
The password that should be used to connect to the database. Not used for SQLite.
Minimum number of tokens in the email that must exist in the vocabulary for prediction to run.

EVAL RULES

Body eval rule. Returns true when the neural network prediction score exceeds "neuralnetwork_spam_threshold" (default 0.6).
Body eval rule. Returns true when the neural network prediction score is below "neuralnetwork_ham_threshold" (default 0.4).
Body eval rule accepting two optional floating-point arguments. Returns true when the raw prediction score falls within the inclusive range "[low, high]". Defaults: "low = 0.0", "high = 1.0".

Use this rule to define finer-grained confidence tiers.

  body      NN_CONFIDENT_SPAM  eval:check_neuralnetwork(0.75, 1.0)
  describe  NN_CONFIDENT_SPAM  Email classified as spam with high confidence by Neural Network
  score     NN_CONFIDENT_SPAM  2.0
  body      NN_PROBABLE_SPAM   eval:check_neuralnetwork(0.55, 0.75)
  describe  NN_PROBABLE_SPAM   Email classified as probable spam by Neural Network
  score     NN_PROBABLE_SPAM   1.0
  body      NN_PROBABLE_HAM    eval:check_neuralnetwork(0.0, 0.4)
  describe  NN_PROBABLE_HAM    Email classified as ham by Neural Network
  score     NN_PROBABLE_HAM    -1.0
    
2026-06-29 perl v5.40.1