Are there any Java API(s) which will provide plural form of English words (e.g. cacti
for cactus
)?
Check Evo Inflector which implements English pluralization algorithm based on Damian Conway paper "An Algorithmic Approach to English Pluralization". The library is tested against data from Wiktionary and reports 100% success rate for 1000 most used English words and 70% success rate for all the words listed in Wiktionary.
If you want even more accuracy you can take Wiktionary dump and parse it to create the database of singular to plural mappings. Take into account that due to the open nature of Wiktionary some data there might by incorrect.
English.plural("Facility", 1)); // == "Facility"
English.plural("Facility", 2)); // == "Facilities"