130 likes | 269 Vues
This document discusses advanced algorithms for generating tag clouds that visually represent item frequencies. It examines various techniques, including greedy algorithms, dynamic programming, and min-cut placement methods. Solutions target common problems like wasted space and large white clumps. The first approach employs a greedy algorithm for inline text layout, while the second focuses on optimizing tag order to minimize visual badness through dynamic programming. The conclusion highlights the benefits of using simple HTML and CSS for effective tag cloud visualization.
E N D
Tag-Cloud Drawing: Algorithm for Cloud Visualization Owen Kaser, Daniel Lemire Speaker: Yi-Ching Huang 2007/07/17
Introduction • Tag cloud can represent the frequencies of a hundred items • Tag cloud can be generated using • images • browser-specific technologies (ex: ActiveX) • plugins (ex: Flash) • complex HTML (using absolute positioning) • simple HTML with inline text or tables
Problem Definitions • Problems • Wasted space • Large clumps of white space • Solutions • Floorplanning / placement problem (EDA) • Hybrid of text justification (Knuth-Pass algo) and book-placement (Skiena)
Cloud Layout with Inline Text • 1st algo: take an ordered list of tags and choose where to break line • Step 1: Greedy algorithm ,O(n) • Tags are added to the current line one by one, inserting a white space between them, until the line is full • Step 2: Dynamic programming ,O(n^2) • Knuth-Plass algorithm • Except that 2 things • The last line is not an exception • If a tag exceeds the maximal width, then it will be given a line of its own
Cloud Layout with Inline Text • 2nd algo: reorder tags, attempting to decrease the badness • Finding an optimal ordering is NP-hard: when the required horizontal white space between tags is zero, we have the NP-hard Strip Packing Problem (SPP) • Dynamic programming to place the tags optimally and keep only the best solution • Next Fit Decreasing Height, Weight heuristic (NFDHW)
Strip Packing Problem First Fit Decreasing Height (FFDH) Next Fit Decreasing Height (NFDH)
Cloud Layout with Arbitrary Placement • Min-cut placement • Placement approaches in EDA • Recursively decomposes a collection of tags by bipartitioning: splitting the tags into a “left” group and a “right” group
Slicing Floorplans & Slicing Tree • Slicing floorplans • Slicing tree
Nested Tables for Slicing Floorplans • Trick: each internal node in the slicing tree corresponds to a 2-element table in HTML
Conclusion • Use simple HTML with CSS to layout tags • Two approaches for displaying tag cloud • inline text • arbitrary placement