Users cannot be trusted to categorise things themselves, and it's too much work for administrators.
If you switch on autocategorise for a vocabulary it will hide the taxonomy widget and categorise nodes/entities on submission by matching the text against the vocabulary's own terms and synonyms. Synonyms will typically be word stems or regular expressions.
This approach to autocat is nice and simple, but synonyms must be chosen carefully, and admin needs to regularly review the content and improve the synonyms. This approach may work better in some languages than others.
Can recategorise all the content. This means the category definitions are essentially flexible and can evolve with the content.
Alternatives to this module are as extractor.
To apply tags based on search results, rather than by contenttype, see Mass Tag module.
If you want to tag incoming rss feeds, see Feed API Tagger.
If you want richer, third party categorisation, and more, take a look at open calais .