0

私はそれに名詞を与えるプログラムを持っており、その名詞がそこにあるかどうかを確認するために、名詞のテーブルをデータベースにチェックインします。それは単数名詞の検索で機能します。例えば。ユーザーは、「ツリーとは何ですか?」と入力します。プログラムは「ツリー」を検索します。

しかし、「木とは何ですか?'

プログラムは「trees」を検索しますが、データベースには単数形の名詞しか格納されていないため、見つかりません。検索を行う前に、最後の s を削除することを考えていました。例えば。

 if ((searchnoun.charAt(searchnoun.length-1))=== 's')
  { searchnoun = searchnoun.(take off last s);}

ただし、メガロサウルス、ステゴサウルス、イエス、質量、低音、物理学など、「s」で終わる複数形ではない名詞には機能しません..

複数形ではない s で終わる単語のリストを作成し、そのリストにある場合は最初に検索し、ある場合は最後の 's' を切り捨てず、そうでない場合は検索します。

また、「es」で終わる複数形以外の単語のリストにない限り、「es」で終わる単語についても同様のことを行います。

これを行うより良い方法はありますか?

4

1 に答える 1

1

唯一の方法は、ルールと言葉のデータベースを作成することであり、完璧ではありません。PHPを使用している場合は、次のものが使用できます。http://www.kavoir.com/2011/04/php-class-converting-plural-to-singular-or-vice-versa-in-english.htmlフレームワークの一部ですが、そこから情報を抽出できますPHPを使用していなくても。

残念ながら、ここに投稿するにはコードが多すぎるため、リンクをたどる必要があります

于 2013-01-08T06:29:01.027 に答える