如何实现许多网站(如stackoverflow.com和http://tagexplorer.sandbox.yahoo.com/)中使用的“相关标签”功能。
答案 0 :(得分:10)
我的猜测是,它是最常用的标签之间的相互关系。
例如:
然后很自然地假设tag2“与”tag1。
相关我想说最好的学习地点是O'Reilly's Programming Collective Intelligence book。
答案 1 :(得分:1)
有几种方式可以想到。您可以快速查询以选择相关的标记名称:
SELECT * FROM tags WHERE tag_name LIKE '%$current_tag%'
另一种方法是将标签表设置为具有关系字段,可能是用逗号分隔的相关ID,但这似乎很难维护。
我相信有人会想出更好的答案,所以我也很好奇。
答案 2 :(得分:0)
嗯,我不擅长数学:-),但听起来你正在寻找两个标签之间的correlation。我的第一直觉是将预期值设置为50%(期望每个标签出现在50%的文章中 - 这可能会有所偏离),成对计算标签的相关系数,并确定相关性是否高于a某些价值(您必须通过试验确定),它们是相关的。
或者,您可以使用一个简单的措施,例如(共同出现的文章数量)/(至少出现一个标签的文章总数)。
答案 3 :(得分:0)
也许s.o.跟踪多少时间标记汇集在一起
我插入带有标签A + B的Q1 relationWeight(A,B)= 1
我插入带有标签A + B的Q2 relationWeight(A,B)= 2
现在我删除Q1和Q2。我必须 知道“relationWeight” 在relationWeight = 0
答案 4 :(得分:-1)
使用:
(DataAccessDataContext db = new DataAccessDataContext())
{
Repeater1.DataSource = from rt in db.RelatedTags where st.ITEMID == itemid select new TagView() { ID = rt.Tag.ID, NAME = rt.Tag.NAME };
Repeater1.DataBind();
}
///:)