A lot of bad answers are slipping through the cracks on Stack Overflow. You can see some examples at
Thanks a lot for this post ... and other first time user curiosities
I've been paging through hundreds of these first answers by new users and I've identified a few heuristics that, when applied at the time of answer submit for new users, could drastically reduce the amount of noise answers in the system.
https://stackoverflow.com/review
(route still experimental for now, but very likely to be deployed with some future improvements)
First of all, we allowed 'answers' with a minimum length of 15 characters. I blame myself for this terrible choice, since very short answers are almost always crap. For some crazy reason I used the same minimum constant that we use for comments! No longer. Effective immediately the new minimum answer size is 30 characters. I may increase it a bit more, even, but doubling it seems safe-ish for now.
Beyond the length test -- which is HUGELY important -- there are a bunch of other factors we can use to calculate a "bad answer weight", again, based on me personally browsing through hundreds of bad answers by new users and identifying patterns I observed:
Word checks
- contains word "help"
- contains word "test" or "testing"
- contains word "thanks", "thx", "cheers", "great"
- contains word "bump"
- contains word "same", "problem"
- contains word "sorry"
- contains word "work", "working"
- contains ":)" or ":-)" or ":(" or ":-("
Character set checks
- contains one or more exclamation points
- contains one or more question marks
- contains all (or mostly) uppercase characters
- contains all lowercase characters
- does not contain any spaces
- does not contain any ascii chars
- contains
..
, possibly repeated
Content checks
- includes hyperlink type text (even without the http://)
- includes email address
- content ends in question mark
- answers with low entropy, eg, repeated characters like "asdfasdfasdfjkjkjk"
In my experience having clicked through hundreds of bad answers, these heuristics, particularly when combined, would get nearly all of them. So then, the goal: to prevent these low-quality answers from entering the system at all!
These would all be rolled up into an aggregate answer score, which represents a confidence threshold for every new answer by a new user.
If the score is very low, then the answer will simply be rejected outright. If the score is below a (configurable) threshold, we will present the user with an answer EULA and some basic help, like:
This answer doesn't appear to meet our quality thresholds. Do you still want to submit it to {sitename}? [ ] Yes [ ] No
Clicking yes on the EULA will automatically flag the answer for moderator attention.
Edit: this heuristic is now live (sans the specific word checks, although smileys are penalized) at
https://stackoverflow.com/review/low-quality-posts
Please try it for yourself!
):
,(:
, etc.