我想了解有助于识别重叠数据集之间的共性和差异的算法信息。
使用stackoverflow的标记系统作为示例:
假设这个问题已经给出了5个标签。假设有1000个其他问题至少有一个这样的标签。在这1000个问题中,有多少这些问题与我的原始帖子没有相同的标签?
另一种更简单的描述方式是自动建议标记系统:
“您使用[我选择的5个标签]标记了您的问题。其他类似的问题被标记为[可能感兴趣的标签列表]。其中[可能感兴趣的标签列表]经常出现标签在我的原始列表中。
c#中的代码示例(如果可能):)
答案 0 :(得分:1)
调查Wager-Hamming距离。这是在字符串上定义的汉明距离,它是将一个字符串转换为另一个字符串所需的编辑操作数。
您还可以使用等价类的部分顺序并设置包含:当问题A和B具有完全相同的标记集直到重新排序时,它们是相等的,设置并集,设置差异和设置交集然后定义<&的偏序和&gt;比较。
答案 1 :(得分:0)
我不知道任何特定的算法或数据结构,但我可以建议一个基本的处理方法:
假设:每个条目都有五个唯一标记。
在(草率)伪代码中,使用两个循环(如果可能):
for each entry
if any tag in original_tags
tag_list[tag]++
end
for next in tag_list
tag_count[tag_list[next]] += next
end
这应该产生一个稀疏的连接标签名称数组(好吧,我没有包含分隔符,但是它是伪代码:-)。保持最高编号,然后向后迭代以获得最佳建议。
(缓存优化,但要注意更新)
保罗。