A couple of years ago my site forum started to receive weird posts. Back then I had not imagined that I would have to take care of people posting messages related to publicity and other stuff that had nothing to do with Joomla extensions.
So, I started to try to find for a solution at the Joomla Extensions Directory. There I found a couple of extensions the prevent spammers registration by checking an online database containing IP addresses, user ids and emails of people who had been reported as spammers. At that moment I didn't think that was a good solution, I didn't believe that there could be records of all spammers in the world.
For that reason I went to find a different solution. I searched the web and came accross an algorithm designed to decide if a given text was spam or not. This algorithm used a database with a large list of words and their probability to be included in spam. So, I thought that would be excellent and started implementing the algorithm. The thing that I found most interesting was that the list of words with probabilities could be modified in time, so somehow you could teach the algorithm to improve in spam detection. For example, you could feed it with some spam text so it would adjust words probabilities.
And that's how the first version of R-Antispam, which had a different name then, started. I installed it in my own site and I was amazed to see how well it worked. I guess it had an 90% accuracy. And, yes it also classified good post as spam, but that was rare.
Anyway, at some point I decided that it would interesting to give a try at some of the algorithms the searched spammers data at an online database. So, I decided to use Akismet and I was surprised to see that it worked perfectly, it caught 100% of spammers.
Resuming, I was wrong at first, checking with an online database is an excellent idea. However, I am very happy for developing R-Antispam. I guess it is a very good choice to fight spam, I woun't use any other. It has a high level of spam detection accuracy and it even works if public write access is enabled, although I recommend setting it up to integrate with Akismet, you can get a free Akismet key at www.akismet.com.
If you want to know this is my configuration settings: