您好,匿名用户
随意问技术百科期待您的加入

求一个文章和标签多对多的算法

0 投票

现在有文章表,标签表,文章标签关系表,其中文章和标签 多对多
现在在一篇文章详情页,该文章有 a,b,c三个标签,需要按照标签匹配度提取相关文章并排序,匹配度高的排前面。
匹配度的计算方式,按照匹配标签的个数计算,拥有相同标签的个数越多,匹配度越高。
求除了穷举之外的算法,一定要考虑性能

用户头像 提问 2012年 12月1日 @ Nasus 上等兵 (329 威望)
分享到:

1个回答

0 投票

给文章的每个 标签tag 设置一个 权重weight ,然后计算每篇文章的 权重值和,最后根据 权重降序 即得到文章

复杂度:O(n)

建议有空看看 数学之美 这本书;会有很多收获的

demo:

文章id      tag
 1         a,b,c
 2         a,b,d
 3         a,c,d
 4         d,e,f
 5         a,b,c
 

假设 a,b,c 的权重是 1,2,3
那么就有:

文章id      tag      权重
 1         a,b,c     6
 2         a,b,d     3
 3         a,c,d     4
 4         d,e,f     0
 5         a,b,c     6
 

文章1 的相关文章就是: 5,3,2,4

用户头像 回复 2012年 12月1日 @ Libra 上等兵 (351 威望)
提一个问题:

相关问题

0 投票
1 回复 29 阅读
0 投票
1 回复 24 阅读
+1 投票
0 回复 25 阅读
0 投票
1 回复 37 阅读
用户头像 提问 2012年 12月1日 @ Graves 上等兵 (254 威望)
0 投票
1 回复 44 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...