存档十二月 24, 2006

转贴:关于Tag Clouds的实现

一直想系统地提出一个完整的实现tagging的需求,并考虑在某些平台上实现tag clouds的通用方法。正好邂逅一篇东东,留存在这里。感谢作者。

转贴:EndTech @ micy.cn » Tag Clouds相关笔记

Tag Clouds的属性一般有四种

* 字号 一般与数目有关

* 排列 字典顺序、随机

* 颜色 固定渐进色、是否加背景等

* 字体 一般为固定

Tag Clouds通常是看起来无规律的,不是网格排列,这样看起来才cloudy,会更吸引人。

Tag Clouds不仅是一组看起来有趣的图象,更是一种组织用户贡献信息的导航方式。

Tag Clouds表达的数目多少是通过相对大小来展现的,用于当人们不需要知道每个tag具体表示精确数字是多少时。所以它更多的是给人一种全局的展示感觉,而不是用于查阅细节,这符合它作为导航的定位。

在一个由用户贡献内容的站点中(比如flickr),你不可预见将来某天它的主要内容是什么,不能固定的告诉搜索引擎你站点的description。而Tag Clouds恰恰解决了这个问题,它动态地展示了当前你站点上的内容分布情况和热点。

flickr是第一个将其起名为Tag Clouds并投入使用的站点,来源于Jim Flanagan在自己blog开发的一个perl写的blog插件: Zeitgeist,用来展示来自google和yahoo带来流量的搜索关键词。地址是http://jimfl.tensegrity.net/zeitcode。它使用了随机的颜色和随机的顺序,使得每次看到时,都可能有不同的TAG进入读者的视线。

flickr团队吸取并改进了Zeitgeist的思想:

1. 用它来表示社区用户的贡献,而不仅是搜索引擎的term。

2. 字母顺序代替了随机,增加一种浏览方式。

3. 随机的色彩可能不如单色,它带来了视觉上的复杂性却没有带来更多的信息。

4. 让展示的TAG数目相对来说少一些,不会有好几页。

Design Tips for Building Tag Clouds

1. 记住它不单用于展现,也用于导航。

2. 选择合适的语言,比如Perl PHP Python Ruby,他们提供了更好的数组支持(比C/JAVA方便)

3. 要让它可以被spider看到,所以不要用Flash Javascript等实现。

4. 使用字母顺序排列可能比随机好,因为有时可能想查看一个特定名称的TAG,好定位。

5. 避免随机映射(比如随机颜色),它不会带来更多的信息。

6. 迎合用户兴趣是最重要的,取最近一段时间的数据比取所有时间的好,而且它会时常变化,而不是千篇一律。另外,在搜索结果中也可以有所应用,比如根据term展示相关TAG的Tag Clouds会更有趣。

  

每个Tag所表示的数量,通常都是符合长尾分布的,即大部分Tag使用的次数都很小,而小部分Tag使用的次数非常的高,是一个log曲线。
  

于是为了在Tag Clouds展示的时候将字的大小控制为线性的,需要对数量做一下对数处理。于是我照着统计了一下GPL.txt中出现次数最多的100个词,它们的Tag Clouds就是这个样子滴。

评论(3)