API de Java para formas plurales de palabras en inglés

¿Hay alguna (s) API (s) de Java que proporcionen una forma plural de palabras en inglés (por ejemplo, cacti para cactus )?

Wolfram | Alpha devuelve una lista de formas de inflexión para una palabra dada.

Mira esto como un ejemplo:

http://www.wolftwiglpha.com/input/?i=word+cactus+inflected+forms

Y aquí está su API:

http://products.wolftwiglpha.com/api/

Verifique Evo Inflector, que implementa un algoritmo de pluralización en inglés basado en el artículo de Damian Conway ” Un enfoque algorítmico para la pluralización en inglés “. La biblioteca se prueba con los datos de Wiktionary e informa una tasa de éxito del 100% para las 1000 palabras en inglés más utilizadas y una tasa de éxito del 70% para todas las palabras enumeradas en Wiktionary.

Si quiere aún más precisión puede tomar el volcado de Wiktionary y analizarlo para crear la base de datos de mapeos de singular a plural. Tenga en cuenta que debido a la naturaleza abierta de Wiktionary, algunos datos pueden ser incorrectos.

Ejemplo de uso:

 English.plural("Facility", 1)); // == "Facility" English.plural("Facility", 2)); // == "Facilities" 

jibx-tools proporciona un plurilizer / depluralizer conveniente.

Prueba Groovy:

 NameConverter nameTools = new DefaultNameConverter(); assert nameTools.depluralize("apples") == "apple" nameTools.pluralize("apple") == "apples" 

Sé que hay una función simple pluralize () en Ruby on Rails, tal vez podrías obtener eso a través de JRuby. El problema realmente no es fácil, vi páginas de reglas sobre cómo pluralizar y ni siquiera estaba completo. Algunas reglas no son algorítmicas: dependen del origen del tronco, etc., que no se obtiene fácilmente. Entonces debes decidir qué tan perfecto quieres ser.

teniendo en cuenta Java, eche un vistazo a modosMateriales Inflector-Class como miembro del paquete org.modeshape.common.text . O google para “inflector” y “randall hauch”.

Es difícil encontrar este tipo de API. más bien, necesitas encontrar algún servicio web que pueda servir para tu propósito. Mira esto No estoy seguro de si esto puede ayudarte … (Intenté poner cactus de palabras y obtuve cactus en algún lugar de la respuesta).

Si puede utilizar javascript, he creado un javascript liviano (7.19 KB) para esto. O podrías transferir mi script a Java. Muy fácil de usar:

 pluralizer.run('goose') --> 'geese' pluralizer.run('deer') --> 'deer' pluralizer.run('can') --> 'cans' 

https://github.com/rhroyston/pluralizer-js

Por cierto: parece que cactus para cactus es una conversión súper especial (la mayoría de las personas van a decir ‘1 cactus’ de todos modos). Es fácil agregar eso si quieres. El código fuente es fácil de leer / actualizar.