登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天地之性人为贵

你不要哭,这样不漂亮

 
 
 
 
 

日志

 
 

互联网资讯排重算法  

2013-10-23 22:19:47|  分类: 没事搞点IT |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本算法是《利用余弦相似度对大量文章排重》的升级版本,转载请注明出处。

概念定义:

关键词重合度:
文章a的关键词集为A,文章b的关键词集为B,文章a与b的关键词重合度为:COUNT(A交B)/COUNT(A)
假分页文章:
将多篇相关文章糅合在一起作为一篇新文章


一、通过关键词选出相关文章
1、将最近10天的所有有效文章,根据长度,按1%的比例提取7-20关键词保存(100个字提取1个词,不足7个取7个,超过20个取20个)
2、新进文章A按此方法取词,与每篇文章的关键词做交集,若以往文章与新文章A关键词重合度大于70%,将该文章加入候选集


二、计算新文章与候选集中文章的片段重合关系
1、文章预处理(统一全角、半角,去掉多余的空白符、圆括号内容等)
2、计算相同段落比率:相同段落数/MIN(文章A段落数,文章B段落数)
3、剔出文章正文所有空白符,计算长度比:MIN( 文章A长度,文章B长度 )/MAX(文章A长度,文章B长度)
4、用符号集[,。,\!!?\?;;]拆分正文,计算:
        相同句子比率:相同句子数/MIN(文章A句子数,文章B句子数)
        相同字符比率:相同句子总字数/MIN(文章A字符数,文章B字符数) //用于防止关键长句一样,辅助短句不一样
5、根据以上参数判断两篇文章关系
     if 相同句子比率 > 0.7 or 相同字符比率 > 0.6
        if 长度比 > 0.6
            两篇文章相同或者相似
        else 
            if 相同段落比率 > 0.4
                长文章包含短文章
            else 
                短文章是长文章的句子摘要
6、如果没有命中以上关系,计算两篇文章的余弦相似度
    if 余弦相似度 > 0.9 and 长度比 > 0.8 and 相同句子比率 > 0.5
        两篇文章相似


三、从以上关系中,进一步判断是否是“假分页”
1、如果包含关系中的长文章已被标记问假分页,包含关系为假分页
2、如果两篇文章相似且其中一篇文假分页,两篇均为假分页
3、如果文章B包含文章A,从历史记录中提取文章B的包含关系,如果文章B包含另外一篇文章C,通过第二步的算法计算文章C与文章A的关系,如果A与C无关,则文章B为假分页,将文章B置为无效,重新计算与文章B相关的文章的相似关系


四、更新新文章的指向关系
经过以上步骤的计算,得到新文章A与以往文章的一系列关系
1、按以上计算结果及链接的引用方向,将关系分为“入”与“出”两组
2、如果存在“出”关系,忽略“入”关系,按照“包含、相似、摘要、发布时间”的优先级从“出”关系中选择一条,将新文章指向选中的文章。
3、如果存在入的关系且不存在出的关系,将其他文章及它们的“入”关系文章指向新文章A

五、TODO

1、新文章加入时自动计算原始出处

2、利用相似性的计算结果推荐相关文章

  评论这张
 
阅读(297)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018