2012-04-02 11 views
1

どこから始めたらいいかわからないが、達成しようとしていることがある。PHPでRSSフィードの "類似の"記事を探す

私は現在、記事のリストを持つMySqlデータベースを持っています。 DBには記事のタイトル、コンテンツ、日付などのその他の情報が含まれています。

新しい記事を監視するRSSフィードがあります。これは、特定の件名の最新ニュースを含むGoogleアラートフィードです。このフィードを自動的に監視し、現在DBにあるストーリーに似たフィード項目を記録できるようにしたいと考えています。

私はスクリプトを自動的に実行するように設定する方法を知っており、SimplePieでRSSフィードを解析する方法を知っています。

私が理解しておくべきことは、rssフィード項目の説明を取得する方法、DBをチェックしてフィード項目がDBにあるものと似ているかどうかを確認し、いくつかの並べ替え、並べ替えのような "類似性評価"または何か。

その後、「類似性評価」が設定限度を上回っている場合、私はDBに記録する必要がある情報を手に入れることができます。

私の唯一の問題は、各フィード項目を当社の現在の記事と比較し、どれほど似ているかに基づいてスコアを返す方法です。

+0

が、私は頻繁に使用する分類のウェブサイトがあります。同じ商品に対して複数の広告を掲載することは禁止されています。 一度私は私の追加を再投稿しようとしましたが、元のものを削除するのを忘れました、そして、それは私の別の広告にあまりにも似ていたと言いました。私は少し言葉を並べ替えてみましたが、それはまだ同じことを言った。だから、私の2番目の広告は私のオリジナルと非常に似ていました。 私は彼らがやっていることは何でもしなければならないが、私が欲しがっている非常に似た物語をブロックするのではなく、 私が話していることをちょっと明確にしようとしています。 –

答えて

1

Levenshtein関数(PHPとMySQLの両方で使用可能)はこれを処理する良い方法です。基本的に、ある文字列を別の文字列に変換するのに必要な置換(置換、移動など)の数に基づいて値を計算します。そのスコアはあなたの「類似性評価」になります。

EDIT:レーベンシュタイン機能は、MySQLでネイティブに利用できないですが、あなたのような使用することができ、それのSQLの実装があります。逆の例としてhttp://kristiannissen.wordpress.com/2010/07/08/mysql-levenshtein/

+0

これをチェックするつもりです、ありがとう。 –

+1

http://stackoverflow.com/questions/4671378/levenshtein-mysql-phpはこのトピックをリトルビットでカバーしているかもしれません。 – TheOx

+0

私はこれを受け入れられた答えとしてマークするつもりです。なぜなら、あなたが言及した機能が、私が必要とするものを手伝ってくれるように見えるからです。 –