热门关键字: jsp web pl/sql pl webwor   →开发工具  操作系统
当前位置 : 无忧IT编程网 > 数据库开发 > SQL Server > 正文

文章内容相关性统计

来源:转载作者:无忧时间:08-01-24
    内容相关性我能想到的是比较两篇文章提取出来的标签。
    每篇文章都可以提取出一些出现频率比较高的词语,就是标签,存放在数据库里。并且存放的时候已经按出现频率从高到低排列,频率高的标签保存在前面,低的在后面。假定标签表结构如下
PageTag
字段含义类型
Id INT
TagId标签IDINT
PageId文章IDINT

 
    则对于同一篇文章(PageId相同)来讲,出现频率高的标签,ID一定小于频率低的标签对应的ID。
    比较的思路是,如果两篇文章,相同标签的频率越高,数量越多,则说明这两篇文章的相似度就越高。这好象涉及到一个叫“权重”之类的东西。不过我不知道什么叫权重。
找出某篇文章的相关文章的SQL语句如下:
SELECT a.PageId,SUM(b.Row) AS Weight FROM PageTag AS a,
 
(SELECT TagId,ROW_NUMBER() OVER(ORDER BY Id DESC) AS Row
FROM PageTag
WHERE PageId=某篇文章的ID) AS b
 
WHERE a.PageId<>某篇文章的ID
AND a.TagId=b.TagId
GROUP BY a.PageId
结果就可以将文章和相应的相似度列出来了。Weight越大,相似度越高。
主要用了ROW_NUMBER(),并且ORDER BY Id DESC,所以频率越高的,ROW就越大,最后合计的SUM(Row)AS Weight就越大。同时,如果两篇文章相同的标签很多,合计数也跟着大,所以这个Weight应该可以反映权重。
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 验证码: 验证码
查看所有评论
相关文章
站长推荐