Есть ли какой-либо Java API (ы), который предоставит множественную форму английских слов (например, cacti
для cactus
)?
API Java для множественных форм английских слов
Ответ 1
Wolfram | Alpha возвращает список форм флекса для данного слова.
Смотрите это как пример:
http://www.wolframalpha.com/input/?i=word+cactus+inflected+forms
И вот их API:
Ответ 2
Отметьте Evo Inflector, который реализует алгоритм плюрализации английского языка на основе бумаги Дамиана Конвей " Алгоритмический подход к плюрализации английского языка". Библиотека протестирована против данных из Викисловаря и сообщает 100% -ный показатель успеха для 1000 наиболее используемых английских слов и 70% успеха для всех слов, перечисленных в Викисловарии.
Если вы хотите получить еще большую точность, вы можете взять дамп Викисловаря и проанализировать его, чтобы создать базу данных единственных чисел для множественных отображений. Учтите, что из-за открытой природы Wiktionary некоторые данные могут быть ошибочными.
Пример использования:
English.plural("Facility", 1)); // == "Facility"
English.plural("Facility", 2)); // == "Facilities"
Ответ 3
Я знаю, что в Ruby on Rails есть простая функция pluralize(), возможно, вы можете получить это через JRuby. Проблема на самом деле непростая, я видел страницы правил о том, как плюрализовать, и это даже не было полным. Некоторые правила не являются алгоритмическими - они зависят от происхождения стебля и т.д., Что нелегко получить. Поэтому вы должны решить, насколько вы идеальны.
Ответ 4
jibx-tools обеспечивает удобный плюрализатор/деплазатор.
Groovy test:
NameConverter nameTools = new DefaultNameConverter();
assert nameTools.depluralize("apples") == "apple"
nameTools.pluralize("apple") == "apples"
Ответ 5
Трудно найти такой API. скорее вам нужно узнать какой-то веб-сервис, который может служить вашей цели. Проверьте это. Я не уверен, что это может вам помочь.. (Я пытался поставить слово кактусы и получил кактус где-то в ответе).
Ответ 6
рассматривая java, посмотрите modeshapes Inflector-Class как член пакета org.modeshape.common.text. Или google для "инфлектора" и "randall hauch".
Ответ 7
Если вы можете использовать javascript, для этого я создал легкий (7,19 КБ) javascript. Или вы можете переносить мой script на Java. Очень проста в использовании:
pluralizer.run('goose') --> 'geese'
pluralizer.run('deer') --> 'deer'
pluralizer.run('can') --> 'cans'
https://github.com/rhroyston/pluralizer-js
Кстати: Похоже, кактусы кактусы - это супер специальное преобразование (большинство ppl собираются сказать "1 кактус" в любом случае). Легко добавить это, если хотите. Исходный код легко читается/обновляется.