文章内容相关性统计

文章内容相关性统计

左直拳

内容相关性我能想到的是比较两篇文章提取出来的标签。

每篇文章都可以提取出一些出现频率比较高的词语,就是标签,存放在数据库里。并且存放的时候已经按出现频率从高到低排列,频率高的标签保存在前面,低的在后面。假定标签表结构如下

PageTag

字段

含义

类型

Id

INT

TagId

标签ID

INT

PageId

文章ID

INT

则对于同一篇文章(PageId相同)来讲,出现频率高的标签,ID一定小于频率低的标签对应的ID

比较的思路是,如果两篇文章,相同标签的频率越高,数量越多,则说明这两篇文章的相似度就越高。这好象涉及到一个叫“权重”之类的东西。不过我不知道什么叫权重。

找出某篇文章的相关文章的SQL语句如下:

SELECT a.PageId,SUM(b.Row) AS Weight FROM <place w:st="on"><city w:st="on">PageTag</city><state w:st="on"><span style="COLOR: blue">AS</span></state></place> 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就越大,最后合计的SUMRowAS Weight就越大。同时,如果两篇文章相同的标签很多,合计数也跟着大,所以这个Weight应该可以反映权重。

注:这种算法在实际应用中效果不佳,除了提取出来的标签准确度不是很高外,算法本身也不太完善。比如说,一篇文章很长,提取出来的标签有10几个,而短的文章有的只有2、3个,这时候,长文章的标签权重普遍大于短文章的,统计出来就有偏差。

抛出我的吊,来吸引您的玉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值