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