2009年3月24日火曜日

levenstein~PHPで編集距離 その2

カスタム関数でのマルチバイト対応は、冷静になったら出来た。
遅さに関しては、冷静に考えてキーワードはそんなにたくさん要らないので
キーワード登録を1,000位にしたら気にならなくなった。
(たくさんアクセスが来たら問題かもしれないが)
bigramインデックスを作ることも頭によぎったが、今そこまでしなくていいかなと。


組み込みであったlevenshtein()関数は結構便利そうなのだが、EUC-JPでテストしても日本語対応できていない気がする。
levenshtein('あいう', 'いう',1,1,1);
の結果が2っておかしい。挿入以外は正しい距離が出るときもあるようだが、使い物にはならない。
(PHP5.2.8)


CakePHPのモデルを作った。キーワードのテーブルを作り、上記のような検索関連の関数を収録した。


作っていろいろキーワード検索してみると、便利になっていることがはっきり実感できて、これはいいと思います。
もうちょっと試したら、テストコードと併せて公開してみたい。

1 件のコメント:

  1. githubにあげてみた
    http://github.com/S1100/php-utf-8_levenshtein/

    返信削除