网站优化长文本去重!
缘起:(1)原创不易,互联网抄袭成风,很多原创内容在网上被抄来抄去,改来改去(2)百度的网页库非常大,爬虫如何判断一个新网页是否与网页库中已有的网页重复呢?这是本文要讨论的问题(尽量用大家都能立刻明白的语言和示例表述)。
缘起:
(1)原创不容易,互联网剽窃成风,不少原创内容在网上被抄来抄去,改来改去
(2)baidu的网页库非常大,爬虫若何判别一个新网页是不是与网页库中已有的网页重复呢?
这是本文要接头的题目(尽可能用人人都能马上分明的语言和示例表述)。
一、传统署名算法与文本完整性判别
题目抛出:
(1)运维上线一个bin文件,将文件分发到4台线上机械上,若何判别bin文件全部是同等的?
(2)用户A将新闻msg发送给用户B,用户B若何判别收到的msg_t便是用户A发送的msg?
思绪:
一个字节一个字节的比对两个大文件或许大网页服从低,咱们可以用一个署名值(比方md5值)代表一个大文件,署名值沟通则觉得大文件沟通(先不思量抵触率)
回覆:
(1)将bin文件取md5,将4台线上机械上的bin文件也取md5,假如5个md5值沟通,解释同等
(2)用户A将msg以及新闻的md5同时发送给用户B,用户B收到msg_t后也取md5,失掉的值与用户A发送过去的md5值假如沟通,则解释msg_t与msg沟通
论断:md5是一种署名算法,常用来判别数据的完整性与一致性
md5设想准绳:两个文本哪怕惟独1个bit分歧,其md5署名值差异也会非常大,故它只适用于“完整性”check,不适用于“相似性”check。
新问题抛出:
有无一种署名算法,假如文本异常类似,署名值也异常类似呢?
二、文本相似性的署名算法
上文提出的题目,可以用部分敏感哈希LSH(Locality Sensitive Hash)解决,部分敏感哈希是一类文本越类似,哈希值越类似的hash算法,有乐趣的同砚自行baidu,这里分享一下minHash的思绪。
题目的提出:甚么是minHash?
回覆:minHash是部分敏感哈希的一种,它常用来倏地剖断调集的相似性,也常用于检测网页的重复性,其思绪为,用沟通的划定规矩抽取调集中的少部分元素代表全部调集,假如少部分元素的重合度很高,异常大概全部调集的重复度也很高。
举例:待剖断的集合为A{1, 7, 5, 9, 3, 11, 15, 13}
已有的集合为:
B{10, 8, 2, 4, 6, 0, 1, 16},
C{100, 700, 500, 900, 300, 1100, 1500,1300},
D{1, 3, 2, 4, 6, 5, 8, 7}
假定应用部份元素接替全部调集的规则为:调集内元素举行排序,取值最小的4个(这个进程有信息丧失,咱们能够认为是一个hash进程)
处置效果为:
A{1, 3, 5, 7}
B{0, 1, 2, 4} => A与B有1个元素沟通
C{100, 300, 500, 700} => A与C有0个元素沟通
D{1, 2, 3, 4} => A与D有2个元素沟通
判别论断:咱们觉得调集A与调集D是最类似的
这个例子有点2,但基本能解释团体思绪,实践在施行的过程当中:
(1)咱们能够应用更多的元向来代表调集,以进步准确性(比方,将上例中的4个元素代表调集进级为8个元素代表调集)
(2)咱们能够应用更多的hash函数来代表调集,以进步准确性(比方,上例除了“排序后取值最小的4个元素代表调集”,还能够增添一个哈希函数“排序后取值最大的4个元素代表调集”)
(3)minHash能够量化评判类似度,亦能够评判网页是不是重复(一个分类题目),设定类似度阈值,高于阈值为重复,低于阈值为不重复
(4)实践排重过程当中,网页库中的哈希值都可以提早计较,只有待剖断的调集或许网页的哈希值需求且自计较
三、minHash与长文本重复度检测有甚么瓜葛
今朝看来没什么瓜葛,但假如咱们能将每个长文本用一个调集来暗示,就能将长文本的类似度用minHash来解决了。
题目的提出:如何将长文本转化为调集?
回覆:我去,分词不是就能么
举例:待剖断的长文本为A{我是58沈剑,我来自58抵家}
已有网页库集合为:
B{我是一只来自58的狼}
C{58抵家,办事抵家}
D{这事和我不要紧,我是充数的}
应用分词将上述文本调集化:
A{我,58,沈剑,来自,抵家}
B{我,58,来自,狼}
C{58,办事,抵家}
D{事,我,充数,瓜葛}
判别论断:铛铛铛铛,转化为调集后,能够倏地判别A与B的类似度最高,当然实践施行过程当中,除了分词还得思量词频,用这类要领对长文本举行类似度检测,准确率异常高(文本越长越准)
四、另有没有更无效的要领
应用上述要领举行文本类似度检测,需求举行中文分词,词频统计,哈希值计较,类似度计较,计较量微大。
然而,剽窃成风,一字不改的民风,让手艺有了更辽阔的优化空间,赞!
怎样优化呢?
再也不举行分词,而是举行“分句”,用标点标记把长文根据句子合并,应用N个句子调集(比方一篇文章中5条最长的句子作为署名,注重,长句子比短句子更具有区别性)作为文章的署名,在剽窃成风的互联网环境下,此法判别网页的重复度能大大下降工程复杂度,而且准确度也非常的高。
五、论断
在剽窃成风的互联网环境下,接纳“分句”的体式格局,用5条最长的网页内容作为网页的署名,可以或许极大的下降排重体系复杂度,进步排重准确率,不失为一种好的抉择。
题目只是噱头,baidu是否这么做的我其实不晓得,知情的同学说一下哈。
转载请注明: 爱推站 » 网站优化长文本去重!
评论列表(0)
发表评论