ホームページ  >  記事  >  バックエンド開発  >  PHPの簡単な実装「関連記事のおすすめ」 Function_PHPチュートリアル

PHPの簡単な実装「関連記事のおすすめ」 Function_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:33:34724ブラウズ

一般に、コンテンツ Web サイトを構築する場合、記事に関連する記事のリストが各記事に表示される必要があります。おそらくほとんどの人が使用する方法は、キーワード リストを作成し、各記事にどのキーワードが含まれているかを判断し、最後にキーワードに基づいて記事に最も関連性の高い記事を見つけるというものです。より複雑なコンテンツを含む Web サイトの場合、キー リストの単語を決定するのは明らかに面倒です。

その後、いくつかの php 関数を調べたところ、similar_text (php4, php5) 関数が私の要件を非常に便利に満たすことができると感じました。アイデアは、記事リストからすべての記事タイトルを取り出し、すべての記事タイトルを現在のタイトルと比較し、比較結果の配列を生成し、similar_text を使用してこれらの記事タイトルを元のタイトルと比較し、記事のタイトルを並べ替えます。類似度に従ってタイトルを検索し、元の記事に類似した記事のリストを取得します。

このアイデアで使用される主な関数は次のとおりです:

リーリー

2 つのルート文字列の同じバイト数を返します。

このアイデアに従って、次の関数を作成します。この関数の機能は、$arr_title 配列を $title と同様の順序で再配置することです。

リーリー

プログラムの実行結果:

リーリー

注意すべき点:

  1. like_text の速度に関しては、誰かがこのテストを行っており、その結果は次のとおりです。
  2. similar_text の速度の問題は、テキストの長いセクション (20000 文字を超える) のみの問題であるようです。

    similar_text を呼び出す前に、テスト対象の文字列が 20000 文字未満かどうかをテストするだけで、アプリケーションのパフォーマンスが大幅に向上することがわかりました。

    20000 以上の処理には 3 ~ 5 秒かかりましたが、その他 (10000 以下) の処理にはほんの数秒かかりました。 幸いなことに、比較できなかった 20000 文字を超えるインスタンスはほんの少数でした

    テキストを直接比較に使用する場合は、速度が遅くなる可能性があります。

  3. この機能は英語ではうまく動作しない可能性があります(試したことはありません)。英語で使用する場合は、英語の文章をスペースで複数の単語に区切って、similar_text のような関数を書くことができます。
  4. 文章に「的」や「乐」などのキーワード以外の文字が多く含まれる場合、得られる結果は理想的ではない可能性があります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752454.html技術記事一般に、コンテンツ Web サイトを構築する場合、記事に関連する記事のリストを各記事に表示する必要があります。ほとんどの人が使用する方法はおそらく次のとおりです: キーワード リストを作成し、各記事に次の内容が含まれているかどうかを確認します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。