gem版levenshteinを使ってみる。
なんか、またしても無限ループから帰ってこないのでへこたれた。 原因不明だがまたlevenshteinのせいだろうか。 で、いっそのことCで書かれてて速いというライブラリ levenshtein0.2.0 を試してみることにする。 RubyForge levenshtein0.2.0 を拾ってくる。 .gemでもよかったのかもしれないが、.tar.gzをとってくる。
展開する。 rubygemsが無いよと言われたので、
# yum install rubygems
gccも入ってなかったので(汗)
# yum install gcc
それからやっと
$ ruby build.rb
が動いてなんちゃら .gem、.gemspecなどのファイルができた。 ここでも一度ネット検索して、
# gem install levenshteinxxxx.gem
まだ動かない。
require 'levenshtein'
ではなく
require 'rubygems' require 'levenshtein'
やっと動いた。
distance = Levenshtein.normalized_distance(title_tmp, title) if(distance < DISTANCE_MAX) sorted_similar << [title_tmp, distance] end
とか。
ああ、やっと結果が出だしたぞ。 上の例でDISTANCE_MAX = 0.3にしたら、 「のなかみのる」と「すがやみつる」、「2月11日」と「2月21日」、「黒岩よしひろ」と「高橋よしひろ」、 「たがみよしひさ」と「あさりよしとお」などが似てると判定された。 ええっと。最後の例は一見似てないが、「よし」が一致している罠。 「のなかみのる」と「すがやみつる」は「み」と「る」が一致してる。 微妙(笑)。