app开发者平台在数字化时代的重要性与发展趋势解析
793
2022-12-02
文章内容相关性统计
文章内容相关性统计
左直拳
内容相关性我能想到的是比较两篇文章提取出来的标签。
每篇文章都可以提取出一些出现频率比较高的词语,就是标签,存放在数据库里。并且存放的时候已经按出现频率从高到低排列,频率高的标签保存在前面,低的在后面。假定标签表结构如下
PageTag
字段 | 含义 | 类型 |
Id |
| INT |
TagId | 标签ID | INT |
PageId | 文章ID | INT |
则对于同一篇文章(PageId相同)来讲,出现频率高的标签,ID一定小于频率低的标签对应的ID。
比较的思路是,如果两篇文章,相同标签的频率越高,数量越多,则说明这两篇文章的相似度就越高。这好象涉及到一个叫“权重”之类的东西。不过我不知道什么叫权重。
找出某篇文章的相关文章的SQL语句如下:
SELECT,SUM(b.Row) AS Weight FROM PageTag AS a,
(SELECT,ROW_NUMBER() OVER(ORDER BY Id DESC) AS
FROM PageTag
WHERE=某篇文章的ID) AS
WHERE<>某篇文章的ID
AND.TagId=b.TagId
GROUPBY
结果就可以将文章和相应的相似度列出来了。Weight越大,相似度越高。
主要用了ROW_NUMBER(),并且ORDERBY Id DESC,所以频率越高的,ROW就越大,最后合计的SUM(Row)AS Weight就越大。同时,如果两篇文章相同的标签很多,合计数也跟着大,所以这个Weight应该可以反映权重。
注: 这种算法在实际应用中效果不佳,除了提取出来的标签准确度不是很高外,算法本身也不太完善。比如说,一篇文章很长,提取出来的标签有10几个,而短的文章有的只有2、3个,这时候,长文章的标签权重普遍大于短文章的,统计出来就有偏差。
抛出我的吊,来吸引您的玉。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~