IWordFormsProvider

IWordFormsProvider interface

Word フォーム プロバイダーのインターフェイスを定義します。

public interface IWordFormsProvider

メソッド

名前 説明
GetWordForms(string) 指定された単語の語形を取得します. 結果の配列には元の単語が含まれていません.

備考

もっと詳しく知る

次の例は、カスタムの単語フォーム プロバイダーを実装する方法を示しています。

public class SimpleWordFormsProvider : IWordFormsProvider
{
    public string[] GetWordForms(string word)
    {
        List<string> result = new List<string>();

        // 入力単語が複数形であると仮定して、単数形を追加します
        if (word.Length > 2 &&
            word.EndsWith("es", StringComparison.InvariantCultureIgnoreCase))
        {
            result.Add(word.Substring(0, word.Length - 2));
        }
        if (word.Length > 1 &&
            word.EndsWith("s", StringComparison.InvariantCultureIgnoreCase))
        {
            result.Add(word.Substring(0, word.Length - 1));
        }

        // 次に、入力単語が単数形であると仮定して、複数形を追加します
        if (word.Length > 1 &&
            word.EndsWith("y", StringComparison.InvariantCultureIgnoreCase))
        {
            result.Add(word.Substring(0, word.Length - 1) + "is");
        }
        result.Add(word + "s");
        result.Add(word + "es");
        // すべてのルールは EnglishWordFormsProvider クラスに実装されています

        return result.ToArray();
    }
}

次の例は、カスタム単語フォーム プロバイダーを使用するように設定する方法を示しています。

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
  
// 指定したフォルダにインデックスを作成
Index index = new Index(indexFolder);
  
// 指定されたフォルダからのドキュメントのインデックス作成
index.Add(documentsFolder);
 
// カスタム単語フォーム プロバイダ インスタンスを設定する
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
 
// 検索オプション インスタンスの作成
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // 語形の検索を有効にする
  
// インデックスで検索
SearchResult result = index.Search("relative", options);
  
// 次の単語が見つかります:
// 相対的
// 相対的s

関連項目