stemming というのは、
英語などで、単語の複数形や過去形などに付く余分な文字列を取り除き、原型 を推測するための処理を "stemming" といいます。これが出来ると、文字列の 修正なしに検索を行なえるので便利です。
(Lookup の info より)
というもので、以前から let me see... でも使えたら便利かなぁと思っていました。そこで、ruby での実装を探してみたら、いきなりご本家 (The Porter Stemming Algorithm) にありました。ラッキー。
いつか時間が取れたら見てみようっと。
[追記] RuStem というのもあるみたい。こっちは確実に GPL だけど、
acompanied -> acompani evaluation -> evalu authorities -> author
など、ちょっと動作が期待外れな感じかな (from ヤスガーズファーム日記)。
[追記] というか、そのヤスガーズファーム日記の方の rdic の Stem モジュールがとてもよさそう。
irb> Stem::stem('acompanied') => "acompanied|acompany|acompanie" irb> Stem::stem('evaluation') => "evaluation" irb> Stem::stem('authorities') => "authorities|authority|authoritie"
ライセンスも GPL だし安心です。
おはずかしいかぎりです^^;Stemモジュールご自由にどうぞ。
dave さんということはご本家にのっているスクリプトの作者の方!? ありがとうございます。ぜひ参考にさせてください。