Display text in various formats in the same component

Displaying a row of text elements is pretty simple: is the question regarding entering one word and returning the associated parts of speech?

NLTK (Natural Language ToolKit) has some functionality that could probably accomplish most of the above: see below for an example that singularizes plural nouns:
https://www.packtpub.com/mapt/book/big_data_and_business_intelligence/9781787285101/16/ch06lvl1sec069/singularizing-plural-nouns

You could just import nltk on a server-side function and you should be off to the races in 20 lines or fewer.

A nice overview of stemming in NLTK is here:
http://www.nltk.org/howto/stem.html

Cheers.