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