The Porter Stemming Algorithm (or 'Porter stemmer') is a process for removing the commoner morphological and inflexional endings from words in English. Its main use is as part of a term normalisation process that is usually done when setting up Information Retrieval systems (i.e., Indexing for Databases)

The Algorithm is available pre-coded in several languages, including PHP, Java, Perl and (of all things) Visual Basic. There are also notes on the Portuguese version, plus a more limited set of implementations.

Genuinely Useful: