Given a piece of text, this code parses the word frequency distribution of the text, generating the tag cloud
- /**
- * Tag Cloud Demo based on word frequency
- * @author: Unknown
- * @since: 2007-02-27
- */
- Store frequency of words in an array
- $freqData = Array ();
- Random words
- $lorem = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
- Phasellus vestibulum ullamcorper tortor. Aenean quis lacus quis neque
- Adipiscing ultricies. Pellentesque tincidunt ligula vitae nibh ornare
- Pharetra. Proin dignissim tortor. Donec et ipsum nec tellus Gravida
- Tempor. Aliquam ullamcorper purus vel felis. Praesent Faucibus.
- Curabitur Porta. Nulla in Lorem quis mi lacinia fringilla. Integer
- adipiscing mi quis felis. Pellentesque habitant Morbi tristique senectus
- Et netus et malesuada fames ac turpis egestas. Quisque sagittis ante in
- Arcu. Sed libero enim, Venenatis sit amet, vestibulum at, porttitor ID,
- Neque. Vestibulum ornare semper erat. Sed tincidunt nibh et massa. Cras
- sed diam. Quisque blandit enim.
- Sed nonummy. Aenean mollis turpis quis enim. Nam massa nulla, varius
- Molestie, Aliquet et, feugiat eget, Nisi. Sed mollis, Leo UT pretium
- Placerat, Nibh turpis egestas ipsum, sed aliquam neque enim in Risus.
- Nullam NISL. Sed tincidunt Leo Quis tellus. Mauris non lorem. Aenean
- Tristique Justo at Arcu. Fusce et lorem. Nam Sodales. Mauris condimentum
- Diam Nam Commodo. Cum sociis natoque penatibus et magnis dis parturient
- Montes, Nascetur ridiculus mus. Cras ac risus. Proin et dolor laoreet mi
- Gravida sodales. Duis Bibendum, Ipsum posuere egestas posuere, DUI Lacus
- Feugiat turpis, id tincidunt urna est sit amet est. Cras eu sem.
- ";
- Get individual words and build a frequency table
- foreach (Str_word_count ($lorem, 1) as $word)
- {
- For each word found in the frequency table, increment it value by one
- Array_key_exists ($word, $freqData)? $freqData [$word]++: $freqData [$word] = 0;
- }
- // ==============================================================
- = Function to actually generate the cloud from provided data =
- // ==============================================================
- function Getcloud ($data = Array (), $minFontSize = A, $maxFontSize = 30)
- {
- $minimumCount = Min (array_values ($data));
- $maximumCount = Max (Array_values ($data));
- $spread = $maximumCount-$minimumCount;
- $cloudHTML = ";
- $cloudTags = Array ();
- $spread = = 0 && $spread = 1;
- foreach ($data as $tag = $count)
- {
- $size = $minFontSize + ($count-$minimumCount)
- * ($maxFontSize-$minFontSize)/$spread;
- $cloudTags [] = '. ' "class=" Tag_cloud "href=" http://www.google.com/search?q= '. $tag
- . ' "title=". $tag. ' \ ' returned a count of '. $count. ' > '
- . Htmlspecialchars (Stripslashes ($tag)). '';
- }
- return join ("\ n", $cloudTags). "\ n";
- }
- ?>
- "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
- Tag Cloud Demo
Sample Tag Cloud
-
Copy Code
|