背景
- 看一下Wordle:http://www.wordle.net/
- 它比我见过的任何其他词云生成器都要好看
- 注意:源代码不可用 - 请阅读FAQ:http://www.wordle.net/faq#code
我的问题
- 是否有可用于执行Wordle所做的内容的算法?
- 如果没有,有哪些替代方案可以产生类似的输出结果?
为什么我在问这个问题
- 只是出于好奇
- 想学习
place the word where it wants to be
while it intersects any of the previously placed words
move it one step along an ever-increasing spiral
就这样了。难点在于高效地进行交集测试,为此我使用了最近命中缓存、分层边界框和四叉树空间索引等技术(你可以通过努力搜索学习到更多关于它们的知识)。
编辑:正如Reto Aebersold指出的那样,现在有一章书是免费提供的,涵盖了同样的内容:美丽的可视化,第三章:Wordle
这里有一个非常好看的 JavaScript 版本,由 Jason Davies 制作,使用了 D3 库。你甚至可以使用 WebFonts。
我用Python按照Jonathan Feinberg的算法实现了一个标签云。虽然距离wordle.net的美丽标签云还有很大差距,但它可以给你一个大致的想法。
你可以在这里找到该项目:https://github.com/atizo/PyTagCloud。
我创建了一个 Silverlight 组件,使用了 Jonathan 在这里建议的算法。我的博客上提供了源代码和示例项目:
我的词云可以根据不同的权重对单词进行着色和调整大小,并支持从坐标选择单词以及选中单词高亮显示。源代码可供自由使用。
我正在开发一个名为 WordCram 的处理库,用于制作词云。它受 Wordle 的影响很大,并且受到上述 PDF 文档的启发。它可以自动处理碰撞检测,让你集中精力考虑如何布局、着色、旋转等。
http://code.google.com/apis/visualization/documentation/gallery.html
请查看词云可视化。虽然不像wordle.net那么花哨,但很容易添加到您的网站中。
http://sourcecodecloud.codeplex.com
或者http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win
如果您想快速了解一些已创建的云,请点击以下链接:https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
谢谢, Stephan
我有一个标签云生成器,我称之为Disorganizer :)
它使用C# 4.0和System.Drawing命名空间,并提供了TagCloudService、razor markup control和WinForm测试目的等源代码,您可以在博客、个人资料等地方放置它,并加上一些包装。
我创建它的原因是:其他云生成器不能点击标签进行导航,也不能创建悬停动画来显示它们是可点击的。由于在HTML中显示悬停动画对我来说是必要的(我是用叠加的绝对定位的<a>标签实现的),所以我没有开发任意角度的单词显示-它们只能是垂直或水平的。
警告:上面的链接可能在几个月后失效,我计划逐渐将其从周围项目中解除绑定,成为一个独立的项目。
您可以在这篇示例博客文章中看到一个工作演示,但它是不完整的,并且在一个不完整的网站上。如果有人想贡献,请与我联系,我会尽快将其分离出来。