假设我有一个很大的对象列表(数千或数万个),每个对象都带有一些标签。有数十或数百种可能的标签,它们的使用遵循典型的幂律:一些标签使用非常频繁,但大多数很少使用。事实上,除了最常见的几十个标签之外,所有标签通常都可以被忽略。
现在的问题是如何可视化这些标签之间的关系。标签云可以很好地显示它们的频率,但它忽略了哪些标签与哪些其他标签一起出现。假设标记 :bar 仅出现在也标记为 :foo 的对象上。这应该在视觉上很明显。对于倾向于一起出现的三个标签也是如此。
您可以使每个标签成为气泡,并让它们彼此部分重叠。从技术上讲,这是一个维恩图,但以这种方式处理它可能很笨拙。例如,谷歌图表可以创建维恩图,但只能用于 3 个或更少的集合(标签):
http
://code.google.com/apis/chart/docs/gallery/venn_charts.html
他们将其限制为 3 个集合的原因是不是这样,它看起来很可怕。请参阅 Wikipedia 页面上的“对更多集合的扩展”: http ://en.wikipedia.org/wiki/Venn_diagrams
但这只有在每个可能的交叉点都不为空的情况下。如果不超过 3 个标签同时出现(可能在扔掉稀有标签之后),那么维恩图的集合可以工作(气泡的大小代表标签频率)。
或者也许是一个图形(如在顶点和边中),具有视觉上更厚或更薄的边来表示共现频率。
您有任何想法或工具或库的指针吗?理想情况下,我会使用 javascript 来执行此操作,但我对 R 和 Mathematica 之类的东西或其他任何东西都持开放态度。如果有人好奇,我很乐意分享一些实际数据(如果我告诉你它代表什么,你会笑)。
附录:我最初想到的应用程序是TagTime,但我突然想到这也很好地映射到了可视化一个人的美味书签的问题。