Several people have asked, so here (link is forever 404, sorry) is a partial implementation of Paul Graham's Bayesian spam filtering algorithm, suitable for experimenting with. I'm currently reworking the final filter so that it doesn't slurp the entire token weighting table into memory (which is great when you want to run it against an mbox, but is overkill for testing a single email).
See the README for some ideas on how to expand this into something usable.
Similar code... (Score:3, Insightful)
I use my own mail parser class that doesn't use memory (it uses temp files instead), and decodes all the MIME stuff for you. Might be worth checking out too in case anyone is interested.
We'll probably plug this into SA 2.41+ or SA3 (whichever comes first).
Reply to This
Re:Similar code... (Score:1)
By the way, a simple tokenizer tweak cut my falst negatives in half. I only force a token to lowercase if at least one character is already lowercase. This has the effect of keeping a separate (high) weights for "MILLION" and "EMAILS" than for "million" and "emails", which have l
Re:Similar code... (Score:2)
The upper/lower case thing didn't make one squat of a difference for me.
Re:Similar code... (Score:1)
When querying, are you going after tokens one at a time, batching up requests using IN (), or trying to get them all at once using a JOIN?
Re:Similar code... (Score:2)