kiyoka.2010_10_13 RSSPLAIN

Related pages: !kiyoka.blog.list Sekka.FAQ !kiyoka.blog.2010_10
55555555555555555555555555555555
5

[Ruby] fuzzy-string-match 0.9.0 リリース

5

二つの文字列同士を曖昧比較するライブラリ(gem)をリリースしました。

5
 rubygems_icon_128
5

lucene-3.0.2からJaro-Winkler distance アルゴリズムだけをポーティングしたものです。

5

キーワード検索でユーザーのタイプミスをある程度許容したい時なんかに使えると思います。

5

ちなみに、私はSekkaという日本語入力メソッドで使っています。

5

結果は上々で、ローマ字にタイプミスが混在してもそれなりに合っていれば漢字を探しだしてくれるので重宝しています。

5

限界速度ぎりぎりまで打鍵スピードを上げてもそれなりに漢字変換ができてしまうので非常に効果を感じています。

5

 

5

インストール方法

5

これだけです。

5
gem install fuzzy-string-match
5

依存ライブラリ群も自動的に解決されてインストールされます。

5

 

5

使いかた

5

factoryメソッドでインスタンスを作って、getDistance()メソッドに比較したい2つの文字列を渡すだけです。

5

結果が 0 ≦ x ≦ 1.0 の近似度で返ってきます。(1.0で完全一致です)

5
require 'fuzzystringmatch'
5
jarow = FuzzyStringMatch::JaroWinkler.new.create( :native )
5
p jarow.getDistance(  "jones",      "johnson" )
5

 

5

ソースコード

5

githubにあります。

5
 kiyoka's fuzzy-string-match at master - GitHubEXT
5

Jaro-Winkler以外のアルゴリズムが欲しい人はこのモジュールに追加して頂ければ幸いです。

5

作業はluceneのオリジナルJavaソースを慎重にRubyとC言語に変換するという簡単なお仕事です(笑)

5

 

5

Rubyの汎用的なライブラリをリリースしたのは今回が初めてです。(Nendoは汎用的だけどちょっと毛色が違うからね)

5

微力ながらRubyコミュニティーに貢献できた気がして嬉しいです。

5

 

5

 

5

...comment disabled...