phpで文章の重複率を取得する その1

phpで文章の重複率を取得する方法

1.AとBの文章があった場合にどれだけ文章が重複しているかを%で出す
2.コンテンツ的な重複なので、完全一致でなく、内容も鑑みる。
3.文章の前後が違うだけで、文節が一緒の場合も重複とみなす。

考えられる対応策
1.日本語文章を文節で分ける
2.A/Bの文章の要素を分けた文節を、array_diff で差分をとる。
3.A/Bの文章の要素が少ないほうを本体とする(とりあえず)
4.count(差分)/ count(本体) * 100 = 重複率の%

と考えてみた。


まず、mecabインスコ

http://mecab.sourceforge.net/#download

mecab-0.96.tar.gzをいんすこ

% tar zxfv mecab-X.X.tar.gz
% cd mecab-X.X
% ./configure
% make
% make check
% su
# make install

辞書もインスコ

% tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
% mecab-ipadic-2.7.0-XXXX
% ./configure
% make
% su
# make install

PHP MeCab extensionをインスコ

php_mecab-0.2.0.tgz (alpha)
http://page2.xrea.jp/pub/php_mecab-0.2.0.tgz

$ ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config

configure: WARNING: You will need re2c 0.9.11 or later if you want to regenerate PHP parsers.
とでるが問題ないみたいなので無視

$ make
$ su
# make install

ここでLD_PATH?何ちゃらの警告がでる。
そこで、/etc/lo.so.confに追加
/usr/lib64/php/modules/

そのあとに
/sbin/ldconfig

最後に/etc/php.iniの最末尾に

;mecab
extension="mecab.so"

このあと、
/etc/rc.d/init.d/httpd reload

cui なら php -i で

mecab
MeCab Support => enabled
MeCab Library Version => 0.96
Module Version => 0.2.0-alpha
があるのを確認


そして、本題に入ります。
本題は次回で。。。