【发布时间】:2012-06-12 13:30:42
【问题描述】:
我正在解决一个测验,需要一些建议。
测验摘要如下:
分析书签服务(如delicious、digg...)的数据,提取出具有两个以上公共标签的url组。
- 每个书签数据包含 1) 用户 ID、2) url 和 3) 一个标签数组。
- 与所有网址相比,所有标签的大小都相对较小。也就是说,人们为有限集合的网站添加书签
- 分配给 URL 的所有标签都不同
- 如果不同的用户为同一个 URL 添加了书签,则不应将它们分组。(但是,这是一个可选条件。您可以忽略 user_id 并假设所有 URL 都不同。)
示例:
siteA - [tag1, tag2, tag3]
siteB - [tag1, tag2, tag4]
siteC - [tag1, tag3, tag5]
siteD - [tag1, tag2, tag6]
以下两组网址将是结果
(siteA, siteB, siteD), (siteA, siteC)
因为 (siteA, siteB, siteD) 共享两个公共标签 (tag1, tag2) 并且 (siteA, siteC) 也共享两个公共标签 (tag1, tag3)。
-- 条件 3,4 并添加了一个示例。谢谢@btilly。
我的问题是
- 如何解决(或可以应用哪种算法)并且实际快速?
- 有没有可以用与这个问题类似的算法解决的代表性问题?
【问题讨论】:
-
假设 2 个 URL 被每个给定标签 A 3 次,这算作超过 2 个常见标签吗?假设 URL x 和 y 共享超过 2 个公共标签,x 和 z 同上,但 y 和 z 没有,应该返回什么?
-
@btilly 1. 分配给 URL 的所有标签彼此不同。 2. 共享超过 2 个公共标签的 URL 应该被分组,并且组的列表将作为返回值。像(x,y),(x,z)。谢谢,我会添加一些示例来发布。
-
那么
user-id的作用是什么? -
@btilly 你可以忽略user_id,但最初,如果不同的用户为同一个URL添加了书签,你不应该把他们分成组。
标签: algorithm tags graph-theory bookmarks data-analysis