複数形の英語の単語を提供するJava API(例:cacti
for cactus
))はありますか?
Wolfram | Alphaは、指定された単語の語尾変化フォームのリストを返します。
例としてこれを参照してください。
http://www.wolframalpha.com/input/?i=Word+cactus+inflected+forms
そしてここに彼らのAPIがあります:
チェック Evo Inflector ダミアンコンウェイの論文に基づいた英語の複数化アルゴリズムを実装しています " 英語の複数化へのアルゴリズム的アプローチ "。ライブラリはウィクショナリーのデータに対してテストされ、最もよく使用される1000の英語の単語で100%の成功率、ウィクショナリーにリストされているすべての単語で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"
RailsのRubyには、単純なpluralize()関数があることを知っています。JRubyから取得できるかもしれません。問題は本当に簡単ではありません。複数化する方法に関するルールのページを見ました。完全ではありませんでした。一部のルールはアルゴリズムではなく、ステムの原点などに依存しているため、簡単に取得できません。したがって、どの程度完璧になりたいかを決定する必要があります。
javaを考慮して、 modeshapes Inflector-Classをパッケージのメンバーとして見てくださいorg.modeshape.common.text。または「インフレクター」と「ランドールハウチ」をグーグルで検索してください。
この種のAPIを見つけるのは難しいです。むしろあなたはあなたの目的を果たすことができるいくつかのウェブサービスを見つける必要があります。チェック this 。これがあなたを助けることができるかどうかはわかりません..(私はWordサボテンを入れようとしました、そして応答のどこかにサボテンを得ました)。
Javascriptを利用できる場合は、このために軽量(7.19 KB)のjavascriptを作成しました。または、スクリプトをJavaに移植することもできます。非常に使いやすい:
pluralizer.run('goose') --> 'geese'
pluralizer.run('deer') --> 'deer'
pluralizer.run('can') --> 'cans'
https://github.com/rhroyston/pluralizer-js
ところで:サボテンからサボテンへの変換は非常に特別なようです(とにかくほとんどのpplは「1サボテン」と言うでしょう)。必要に応じて簡単に追加できます。ソースコードは読みやすく、更新も簡単です。