使用Python在Google应用引擎数据存储中创建标签云
我们在应用引擎的数据存储中有一些没有结构的文本数据。我想为这些数据中的某个属性创建一个一次性的标签云。经过一番寻找,我发现没有现成的框架可以让我做到这一点,只能自己动手。
我想的步骤是:
- 写一个映射函数(类似于map reduce),遍历数据存储中特定类型的每个对象,
- 把文本字符串拆分成单词,
- 对每个单词进行计数,
- 用最终的计数结果生成标签云,可能需要一些第三方软件(离线的,欢迎推荐)。
因为我以前从没做过这个,所以我想知道是否有现成的框架可以帮我完成这个工作(拜托了),如果没有,我这样做的思路是否正确。也就是说,请随时指出我计划中的漏洞。
1 个回答
5
Feed TagCloud 和 PyTagCloud 是两个不错的选择。
Feed TagCloud Generator Gadget for Google App Engine 可能适合你的需求。不过,它没有文档说明。好在它比较简单,虽然我不太确定它是否完全符合你的要求。
这个工具是基于一个数据源来工作的,看起来还挺灵活的。如果你有自己网站的数据源,整合起来应该不会太麻烦,不过所有的处理都是在线进行的。
PyTagCloud 也值得一试。你可以在本地进行处理,而且它生成的标签云看起来很不错。
要让这个工具工作,你只需要导出你的数据存储;计数和分割的工作会由 PyTagCloud 来完成,因为它可以处理文本文件。按照 App Engine 文档中关于 上传和下载数据 的说明,你可以把数据存储导出到本地电脑。你需要写一个“导出类”,然后让 PyTagCloud 在输出上进行操作。
如果你决定自己动手,建议你跳过在线处理,使用上面提到的 上传和下载数据 的离线方法,除非你想要一个动态更新的标签云。遍历整个数据存储并进行在线计数是最麻烦和耗费资源的部分。只有在你需要动态标签云的情况下,这样做才有意义。和上面一样,我建议你写一个“导出类”,然后在本地进行操作。