I say "nearly perfect" only because nothing is perfect.
I run a pretty busy blog site -- with an average of 6,000 or so visitors a day. Akismet was excellent for flagging spam and learned to be nearly 100% accurate. But Akismet only puts the comments in a spam bin which has to be emptied, and we were getting hundreds of spam comments a day by October 2012. I was desperate and tried a number of different plugins that were supposed to solve the problem -- some claiming to be the all-in-one solution that would ensure that we would never see spam again, because the plugin would delete them. One boasted that there were "zero false positives," but I tested it and found that perfectly good comments could get lost with that plugin. (The author got quite upset with me when I pointed this out.)
Then I installed Conditional Captcha and set it to auto-delete spam that did not pass its test. Eight months later, I am still very pleased. We get the occasional spam that is manually submitted. The human spammer will fill out the Captcha, and the comment will end up in our spam bin. But we don't get more than a dozen or so a month, as opposed to hundreds a day.
Probably the two best things about this solution are
1) our legitimate visitors never have to fill out a CAPTCHA. (I dislike filling out CAPTCHAS!! How about you?) Neither do they have to check a box saying they are not a spammer. ;)
2) we do not give control over to a plugin that could block legitimate comments. Any comments that could possibly be legit will land in our spam bin to be manually deleted.
If you have a spam problem, I highly recommend the combination of Akisment and Conditional Captcha.