The English language is a fairly inflexible algorithmic domain, which makes porter-stemming all-the-more useful an algorithm, and impressive in its accuracy. From the author’s official web page, which also contains useful starter-implementations in various modern languages:
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.
Essentially, this means that English-language words are reduced to their stem forms, for example:
tags => tag
nicely => nice
drawers => drawer
usefulness => use