この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレス魔改造 オートブログ講座2 第二十八回目 文章を比較して類似しない文章のみにする その1

  • ワードプレスで作るオートブログ講座2

前回はキーワードに関連した文章のみを抽出する方法を紹介しました。
今回は文章を比較して類似しない文章のみにする方法です。
ネットには類似した文章はたくさんあります。特にニュースはたくさんのサイトで引用されるので、同じ文章や類似した文章が幾つもあります。

こういった類似の文章がある場合、全てを取り込んでしまうと文章が二重になる可能性があります。
そこで類似した文章を除外する必要が出てきます。しかし、問題は完全に同一の文章であれば簡単に比較できるのですが、微妙にリライトしてある類似文章は単純な比較で発見できません。

類似した文章を見付けるにはレーベンシュタイン距離というものを使います。
レーベンシュタイン距離というのは、似ている文章はその文字列が現れる場所(何文字目とか)も似ている、という考えです。

ダジャレは語尾だけをうまく変えて類似しつつまったく別の意味を持たせる言葉遊びですが、ヘタなダジャレは組み合わせる言葉に共通する部分が少ないですよね。

例えば、「こんにちは」と「こんにちわわ」という文章があるとします。
この2つの文章を比較すると8割らあたる「こんにち」までは共通で、その後に続く文字がちょっと違います。
なので非常に類似していると捉えることが出来ます。

同じ「こんにちは」と「こんにちわわ」でも文字は入れ替えずに場所だけをデタラメに入れ替えてみます。

「こんにちは」→「んちはにこ」
「こんにちわわ」→「わんこにわち」

こうすると「んちはにこ」と「わんこにわち」を比較した時にその文字が出現する場所が遠いため、類似した文章には見えなくなります。直感的に人の目で判断できる単純な例なので分かりやすいですね。これをプログラムで判断したいわけです。

で、実はPHPには類似した文章を比較するための関数があります。
「similar_text」という関数で引数に2つの文字列をとります。

以下がサンプルコードです。コメントがたくさんあるので分かりやすいと思います。

関連記事