2013-06-08 10 views
5

私は、ユーザーが無料で広告を掲載できるように分類されたウェブサイト(PHPとMySQL)を用意しています。しかし、ユーザーは重複広告を投稿することがよくあります。スクリプトは正確な重複コンテンツを投稿することを許可していないので、1つまたは2つの文字を変更することでこれを行います。重複するコンテンツを削除するには?

重複した広告を見つけて(テキストの一部を変更したとしても)ユーザーに警告する方法はありますか?

私のサイトはPHPとMySQLにあります。私は検索のためにsphixを使用しています。これをmongodbとapache solrに変更しようと考えています。

+0

内容が重複していますか?何文字ですか? 1週間に1回しか広告を掲載できないという制限があります。 –

+0

ユーザーが偽のパラメータを追加していますか?つまり、http://foo.com/image.png?fakeparam=1?この場合、すべてのパラメータを削除し、パラメータなしのURLのみを考慮することができます。しかし、これは人々が別の名前で同じファイルを再アップロードするのを止めることはありません... –

+0

@ Alexander Cogneauコンテンツが80%類似していると私は広告を重複していると見なします(例えば、そこなど)。 いいえ、私たちは同じ日に複数の広告を投稿する人を制限することはできません。同じ日に投稿された重複コンテンツを手動で見つけることはできますが、1週間前の投稿を検索することはできません –

答えて

0

文章を単語に分割し、各単語を表に一致させ、データベース内の一致率を見つける関数を書くことができます。パーセンテージに基づいて、決定を下すことができます。データベースのチェックを少なくするために、共通の単語と動詞を削除できます。これは配列に格納できます。これは私の個人的な意見がいくつか他のより良い技術があるかもしれないです。しかし、それは良い質問だと言わなければならない。

0

Levenstein距離、jarowinkler、盗作アルゴリズム.. SO

にそれらにそれらを見て、私はシンプルなlevenstein距離

+0

手作りの品質管理のように見えます。たとえば、2人の異なるユーザーが同じ通りに空いているアパートの広告を掲示することができます:「25 Lake Ave」と「26 Lake Ave」 - Levenshtein距離を使用すると、それは重複として1つマークされます。しかし、二重の投稿は、 "25 Lake Ave"と25 Lake Avenueのようになり、Levenshtein距離がより長くなります! – arun