一种通用的网页相似度检测算法

如果我们需要在海量的结构未知的网页库中找到和指定的网页相似度比较高的一些网页,我们该怎么办呢?本文提出的“一种通用的网页相似度检测算法”就是专门解决这个问题。


算法如下:

    1、提取网页文本。这个提取步骤不要求精确,也没办法精确,因为你面对的是未知结构的网页,所以只需要提取去掉标签之后的文本即可。

    2、对提取的文本进行分词。我们使用开源的中文分词组件word分词

    3、为每一个网页建立一个词向量,向量的维度就是两个网页的不重复词的并集,每一个维度的权重就是词频TF,我们这里忽略IDF也不影响。

    4、计算词向量的余弦相似度或简单共有词。

    5、相似度分值超过0.5的基本上可以视为这两个网页拥有相同的内容。


算法的实现代码来自本人的rank项目:

https://github.com/ysc/rank/blob/master/src/main/java/org/seo/rank/impl/GenericWebPageSimilarChecker.java


我的ITEYE(http://yangshangchuan.iteye.com)和OSCHINA(http://my.oschina.net/apdplat/blog)博客有很多同样的博文,主要目的是备份,这里刚好用来测试相似度检测算法的效果,从测试效果来看,相似度分值低于0.5的两篇博文,一篇是由于正文内容太少,不足以抵消干扰信息,另一篇是由于博文不是完整的内容,具体两种相似度判定情况如下所示:


判定相似性的方式一:简单共有词
检查的博文数:103,相似度大于等于0.5的博文数:103,相似度小于0.5的博文数:0
1、检查博文:一个月的时间让你的词汇量翻一翻,相似度分值:0.99

    博文地址1:http://my.oschina.net/apdplat/blog/379303
    博文地址2:http://yangshangchuan.iteye.com/blog/2186301

2、检查博文:1208个合成词,相似度分值:0.99

    博文地址1:http://my.oschina.net/apdplat/blog/393724
    博文地址2:http://yangshangchuan.iteye.com/blog/2197556

3、检查博文:分析996个词根在各大考纲词汇中的作用(五)总结精选篇,相似度分值:0.99

    博文地址1:http://my.oschina.net/apdplat/blog/391865
    博文地址2:http://yangshangchuan.iteye.com/blog/2195991

4、检查博文:根据76大细分词性对单词进行归组(二),相似度分值:0.99

    博文地址1:http://my.oschina.net/apdplat/blog/393774
    博文地址2:http://yangshangchuan.iteye.com/blog/2197877

5、检查博文:根据76大细分词性对单词进行归组(一),相似度分值:0.99

    博文地址1:http://my.oschina.net/apdplat/blog/393771
    博文地址2:http://yangshangchuan.iteye.com/blog/2197874

6、检查博文:2000个软件开发领域的高频特殊词及精选例句(一),相似度分值:0.99

    博文地址1:http://my.oschina.net/apdplat/blog/389200
    博文地址2:http://yangshangchuan.iteye.com/blog/2195665

7、检查博文:JDK源代码中最重要的4646个英语单词,相似度分值:0.98

    博文地址1:http://my.oschina.net/apdplat/blog/390915
    博文地址2:http://yangshangchuan.iteye.com/blog/2195664

8、检查博文:利用1189个精选句子彻底掌握2190个单词,相似度分值:0.98

    博文地址1:http://my.oschina.net/apdplat/blog/394941
    博文地址2:http://yangshangchuan.iteye.com/blog/2199287

9、检查博文:词组习语3054组,相似度分值:0.97

    博文地址1:http://my.oschina.net/apdplat/blog/393374
    博文地址2:http://yangshangchuan.iteye.com/blog/2197555

10、检查博文:英语单词后缀规则总结,相似度分值:0.97

    博文地址1:http://my.oschina.net/apdplat/blog/379330
    博文地址2:http://yangshangchuan.iteye.com/blog/2186326

11、检查博文:英语单词音近形似转化规律研究,相似度分值:0.97

    博文地址1:http://my.oschina.net/apdplat/blog/378569
    博文地址2:http://yangshangchuan.iteye.com/blog/2186300

12、检查博文:英语单词前缀规则总结,相似度分值:0.96

    博文地址1:http://my.oschina.net/apdplat/blog/378753
    博文地址2:http://yangshangchuan.iteye.com/blog/2186327

13、检查博文:192本软件著作用词分析(五)用词最复杂99级,相似度分值:0.95

    博文地址1:http://my.oschina.net/apdplat/blog/388816
    博文地址2:http://yangshangchuan.iteye.com/blog/2194214

14、检查博文:分析151个后缀在各大考纲词汇中的作用(三)总结精选篇,相似度分值:0.95

    博文地址1:http://my.oschina.net/apdplat/blog/392466
    博文地址2:http://yangshangchuan.iteye.com/blog/2196690

15、检查博文:二百多部软件著作中最重要的9224个英语单词,相似度分值:0.94

    博文地址1:http://my.oschina.net/apdplat/blog/391023
    博文地址2:http://yangshangchuan.iteye.com/blog/2195559

16、检查博文:JDK源代码以及200多部软件著作中出现的以连字符构造的1011个合成词,相似度分值:0.94

    博文地址1:http://my.oschina.net/apdplat/blog/394495
    博文地址2:http://yangshangchuan.iteye.com/blog/2199283

17、检查博文:分析在各大考纲词汇中既没有词根也没有前缀和后缀的独立单词,相似度分值:0.94

    博文地址1:http://my.oschina.net/apdplat/blog/392483
    博文地址2:http://yangshangchuan.iteye.com/blog/2196691

18、检查博文:分析113个前缀在各大考纲词汇中的作用(二)总结精选篇,相似度分值:0.94

    博文地址1:http://my.oschina.net/apdplat/blog/392456
    博文地址2:http://yangshangchuan.iteye.com/blog/2195996

19、检查博文:OSCHINA博文抄袭检查,相似度分值:0.94

    博文地址1:http://my.oschina.net/apdplat/blog/396414
    博文地址2:http://yangshangchuan.iteye.com/blog/2200451

20、检查博文:ITEYE博文抄袭检查,相似度分值:0.93

    博文地址1:http://my.oschina.net/apdplat/blog/396411
    博文地址2:http://yangshangchuan.iteye.com/blog/2199536

21、检查博文:一种防止用户生成内容站点出现商业广告以及非法有害等垃圾信息的方法,相似度分值:0.92

    博文地址1:http://my.oschina.net/apdplat/blog/398338
    博文地址2:http://yangshangchuan.iteye.com/blog/2200810

22、检查博文:分析在各大考纲词汇中同时拥有前缀后缀和词根的词(一),相似度分值:0.91

    博文地址1:http://my.oschina.net/apdplat/blog/392490
    博文地址2:http://yangshangchuan.iteye.com/blog/2198571

23、检查博文:软件业的奥斯卡奖:JOLT奖 之 最好的书,相似度分值:0.9

    博文地址1:http://my.oschina.net/apdplat/blog/395681
    博文地址2:http://yangshangchuan.iteye.com/blog/1837328

24、检查博文:计算ITEYE博文在百度的收录与排名情况,相似度分值:0.87

    博文地址1:http://my.oschina.net/apdplat/blog/395970
    博文地址2:http://yangshangchuan.iteye.com/blog/2199419

25、检查博文:APDPlat中数据库备份恢复的设计与实现,相似度分值:0.84

    博文地址1:http://my.oschina.net/apdplat/blog/196912
    博文地址2:http://yangshangchuan.iteye.com/blog/2010680

26、检查博文:中文分词算法 之 基于词典的逆向最大匹配算法,相似度分值:0.84

    博文地址1:http://my.oschina.net/apdplat/blog/210427
    博文地址2:http://yangshangchuan.iteye.com/blog/2033843

27、检查博文:Java中文分词组件 - word分词,相似度分值:0.84

    博文地址1:http://my.oschina.net/apdplat/blog/228619
    博文地址2:http://yangshangchuan.iteye.com/blog/2056959

28、检查博文:网络爬虫面临的挑战 之 链接构造,相似度分值:0.84

    博文地址1:http://my.oschina.net/apdplat/blog/208716
    博文地址2:http://yangshangchuan.iteye.com/blog/2031642

29、检查博文:APDPlat中的用户密码安全策略,相似度分值:0.83

    博文地址1:http://my.oschina.net/apdplat/blog/207124
    博文地址2:http://yangshangchuan.iteye.com/blog/2029367

30、检查博文:Hadoop发行版的比较与选择,相似度分值:0.81

    博文地址1:http://my.oschina.net/apdplat/blog/397625
    博文地址2:http://yangshangchuan.iteye.com/blog/1972846

31、检查博文:APDPlat拓展搜索之集成ElasticSearch,相似度分值:0.81

    博文地址1:http://my.oschina.net/apdplat/blog/197012
    博文地址2:http://yangshangchuan.iteye.com/blog/2010755

32、检查博文:大数据系列11:Gora – 大数据持久化,相似度分值:0.81

    博文地址1:http://my.oschina.net/apdplat/blog/396684
    博文地址2:http://yangshangchuan.iteye.com/blog/1953733

33、检查博文:APDPlat拓展搜索之集成Solr,相似度分值:0.81

    博文地址1:http://my.oschina.net/apdplat/blog/197020
    博文地址2:http://yangshangchuan.iteye.com/blog/2010760

34、检查博文:APDPlat如何自动建库建表并初始化数据?,相似度分值:0.8

    博文地址1:http://my.oschina.net/apdplat/blog/197703
    博文地址2:http://yangshangchuan.iteye.com/blog/2012220

35、检查博文:中文分词算法 之 基于词典的正向最大匹配算法,相似度分值:0.8

    博文地址1:http://my.oschina.net/apdplat/blog/209211
    博文地址2:http://yangshangchuan.iteye.com/blog/2031813

36、检查博文:Java应用系统中自动实时检测资源文件内容变化,相似度分值:0.78

    博文地址1:http://my.oschina.net/apdpla

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值