ホームページ  >  記事  >  バックエンド開発  >  PHP は単語の頻度に基づいてタグクラウドを生成します

PHP は単語の頻度に基づいてタグクラウドを生成します

WBOY
WBOYオリジナル
2016-07-25 08:42:561315ブラウズ

1 つのテキストを指定して、このコードはテキストの単語の頻度分布、世代タグを分析します

  1. /**
  2. * 単語の頻度に基づくタグクラウドのデモ
  3. * @author: 不明
  4. * @since: 2007-02-27
  5. */
  6. // 単語の頻度を配列に格納します
  7. $freqData = array();
  8. // ランダムな単語
  9. $lorem = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec et ipsum gravida. Praesent faucibus. No lorem
  10. Sed nonummmy. For no Mass
  11. モレスティー、でもフュギア
  12. セドソフト
  13. 楽しいけどリススには誰もいない
  14. プレイヤーしかし、その土地とは何でしょうか?マウリスはロレムではありません。アエネアスは船首のところで悲しんでいました。チェックしてチェックしてください。会員向けモーリシャスソース
  15. ディアム便宜上。仲間たちとともに山は羽を生やした大推進力を生み、とんでもないネズミが誕生する。明日と笑い。 Proin et dolor laoreet mi
  16. gravida メンバー。飲まなければいけない、置かなければならない、置かなければならない、湖から逃げなければならない、それはブリキ缶です、それは重要です。 Cras eu sem.
  17. ";
  18. // 個々の単語を取得し、頻度テーブルを構築します
  19. foreach( str_word_count( $lorem, 1 ) as $word )
  20. {
  21. // 頻度テーブルで見つかった単語ごとに、その値をインクリメントしますby one
  22. array_key_exists( $word, $freqData ) $freqData[ $word ]++ : $freqData[ $word ] = 0;
  23. }
  24. // ============= == ==============================================
  25. / / =提供されたデータから実際にクラウドを生成する機能 =
  26. // =================================== == =========================
  27. function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
  28. {
  29. $ minimumCount = min( array_values( $data ) );
  30. $maximumCount = max( array_values( $data ) );
  31. $spread = $maximumCount - $minimumCount;
  32. $cloudHTML = '';
  33. $cloudTags = array() ;
  34. $spread == 0 && $spread = 1;
  35. foreach( $data as $tag => $count )
  36. {
  37. $size = $minFontSize + ( $count - $minimumCount )
  38. * ( $maxFontSize - $ minFontSize ) / $spread;
  39. $cloudTags[] = ''
  40. . htmlspecialchars(stripslashes( $tag ) ) . '';
  41. }
  42. return join( "n", $cloudTags ) . "n";
  43. }
  44. ?>
  45. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  46. < ;html xmlns="http://www.w3.org/1999/xhtml">
  47. タグ クラウド デモ