如何计算网站网页相似度
问题里既然说是代码了,那就可以看到源码了?(我默认)
最简单的就是diff一下啦,
对策可以改改代码风格,排版,变量命名,甚至插曲一些无用代码等等。这些只是看起来不同了。
另外几位大神的答案,似乎忽略了程序运行时的状况呢,如果程序本身逻辑没变,只是文本和语法上做些处理(忽略lisp之类的奇葩),程序运行起来之后,比较调用堆栈的变化,这种方法很容易识破。
你说运行起来比较难的话,那就忽略了测试人员的作用了,把程序/代码段/模块 当成黑盒,通过mock等方式,还是可以一部分一部分搞的。
那改变调用层次,函数套函数?甚至某些地方变成宏?模块重构?诸如此类。这就不好识别了。模块都给重构了的话,姑且不算抄了,但是设计上一样的,人工code review,去了解它的设计,还是能识破。
首先可以diff一下,然后看运行状态,如果是差别很大的,看设计,做code review,看文档,如果自己的代码特别多,而人家的代码又拿不到,可以在自己的代码里加些【水印】,比如搞些magic number,运行时去调试,就找这个magic number,有的话,基本就是盗的。计算的话,我觉得评级比较靠谱,列规则,挨个检测,根据规则中枪程度评级,完全量化的方法应该很难做到,但是规则+评级 可以糙快猛的构造出一个比较相似度的系统,工程思维哈,不
编程吗?如果是的话很简单的。读取2个文档的数据都转换到一个固定编码,然后用循环检查每个字符是否相同,如不同就计个数,直到比较完毕就可通过不同的计数与总字符长度来计算相似度。
据统计,网页上的大部分相同的页面占29%,而主体内容完全相同的占22%,这些重复网页有的是没有一点改动的拷贝,有的在内容上稍作修改,比如同一文章的不同版本,一个新一点,一个老一点,有的则仅仅是网页的格式不同(如 HTML, Postscript),文献[Models and Algorithms for Duplicate Document Detection 1999年]将内容重复归结为以下四个类型:1.如果2篇文档内容和格式上毫无差别,则这种重复叫做full-layout duplicate。
2.如果2篇文档内容相同,但是格式不同,则叫做full-content duplicates
3.如果2篇文档有部分重要的内容相同,并且格式相同,则称为partial-layout duplicates
4.如果2篇文档有部分重要的内容相同,但是格式不同,则称为partial-content duplicates
网页去重的任务就是去掉网页中主题内容重复的部分。它和网页净化(noise reduction),反作弊(antispam) 是搜索引擎的3大门神
去重在我看来起码有四好处:减少存储;增强检索效率;增强用户的体验;死链的另一种解决方案。
目前从百度的搜索结果来看,去重工作做的不是很完善,一方面可能是技术难度(precision和recall都超过90%还是很难的);另一方面可能是重复的界定,比如转载算不算重复?所以另一项附属的工作是对个人可写的页面(PWP)进行特殊的处理,那么随之而来的工作就是识别PWP页面。^_^这里就不扯远呢。
问题如何解决?
网页的deduplication,我们的算法应该是从最简单的开始,最朴素的算法当然是
对文档进行两两比较,如果A和B比较,如果相似就去掉其中一个
然而这个朴素的算法,存在几个没有解决的问题:
0.要解决问题是什么?full-layout?full-content?partial-layout还是partial-content?
1. 怎么度量A 和 B的相似程度
2. 去掉A还是去掉B,如果A ~B(~表相似,!~表示不相似),B~C 但是 A!~C,去掉B的话,C就去不掉。另一个更深入的问题是,算法的复杂度是多少?假设文档数为n,文档平均长度为m,如果相似度计算复杂度为m的某一个复杂度函数:T=T(m),文档两两比较的复杂度是O(n^2),合起来是O(n^2 * T(m)) . 这个复杂度是相当高的,想搜索引擎这样处理海量数据的系统,这样的复杂度是完全不能接受的,所有,另外三个问题是:
3. 如何降低相似度计算的复杂化度
4. 如何减少文档比较的复杂度
5. 超大数据集该如何处理
第0个问题是,我们要解决的关键,不同的问题有不同的解决方法,从网页的角度来看,结构的重复并不能代表是重复,比如产品展示页面,不同的产品展示页面就有相同的文档结构。内容来看,复制网站会拷贝其他网站的主要内容,然后加些广告或做些修改。所以,解决的问题是,partial-content deduplication,那么首先要抽取网页的主体内容。算法变成:
抽取文档主体内容,两两比较内容的相似性,如果A和B相似,去掉其中一个
其次,问题2依赖于问题1的相似度度量,如果度量函数具有传递性,那么问题2就不存在了,如果没有传递性,我们的方法是什么呢?哦,那就找一个关系,把相似关系传递开嘛,简单,聚类嘛,我们的框架可以改成:
抽取文档主体内容,两两比较内容的相似性,如果A和B相似,把他们聚类在一起,最后一个类里保留一个page
最后,归纳为几个步骤
第一步:识别页面的主题内容,网页净化的一部分,以后讨论
第二步:计算相似度
第三步:聚类算法,计算出文档那些文档是相似的,归类。
核心的问题是,“如何计算相似度?”这里很容易想到的是
1. 计算内容的编辑距离edit distance(方法很有名,但是复杂度太高)
2. 把内容分成一个个的token,然后用集合的jaccard度量(好主意,但是页面内容太多,能不能减少啊?)
好吧,但是,当然可以减少集合的个数呢,采样,抽取满足性质的token就可以啦,如满足 mod m =0 的token,比如有实词?比如stopwords。真是绝妙的注意.在把所有的idea放一起前,突然灵光一现,啊哈,
3. 计算内容的信息指纹,参考google研究员吴军的数学之美系列。
把他们放在一起:
第一步:识别页面的主题内容,网页净化的一部分,以后讨论
第二步:提取页面的特征。将文章切分为重合和或不重合的几个结合,hash out
第三步:用相似度度量来计算集合的相似性,包括用信息指纹,Jaccard集合相似度量,random projection等。
第四步:聚类算法,计算出文档那些文档是相似的,归类。
方法分类:
按照利用的信息,现有方法可以分为以下三类
1.只是利用内容计算相似
2.结合内容和链接关系计算相似
3.结合内容,链接关系以及url文字进行相似计算
一般为内容重复的去重,实际上有些网页是
按照特征提取的粒度现有方法可以分为以下三类
1.按照单词这个级别的粒度进行特征提取.
2.按照SHINGLE这个级别的粒度进行特征提取.SHNGLE是若干个连续出现的单词,级别处于文档和单词之间,比文档粒度小,比单词粒度大.
3.按照整个文档这个级别的粒度进行特征提取
算法-具体见真知
1. I-Match
2. Shingling
3. Locality Sensitive Hashing.(SimHash)
4. SpotSigs
5. Combined
网站运营需要统计哪些指标?
计算公式:忠实访问者指数大于N分钟的访问页数\/大于N分钟的访问者数; 指标意义:指的是每个长时间访问者的平均访问页数,这是一个重要的指标,它结合了页数和时间。 指标用法:这个指数通过页面和时间对网站进行了一个更细的区分,也许访问者正好离开吃饭去了。如果这个指数较低,那意味着有较长的访问时间但是较低的访问...
网站pr值?
这个值并不是直接反映网站的流量或者搜索引擎中的排名,而是谷歌基于自身算法对网站做出的评价。一般来说,更高的PR值意味着更多的用户流量和更权威的网络内容,可能会为网站带来更好的SEO表现。PR值的计算因素 谷歌的PageRank算法考虑了多种因素来计算网站的PR值,包括但不限于网页内容的原创性、链接的数量...
图机器学习入门(六):改变世界的PageRank
PageRank的核心思想在于通过网页链接计算每个网页的权重。如果多个网站链接到A页面,搜索引擎会认为A页面价值高,排名也随之上升。同时,A页面链接的其他网站也会因A的支持而获得提升。简单来说,就是通过互联网上网站的链接网络,推断出每个页面的权重,优化搜索结果的排序。计算PageRank采用迭代方法,以公式...
常见的黑帽seo有哪些作弊方式
4、 网页标题作弊 网页标题作为描述网页内容的综述性信息,对于判断一个网页所讲述的主题是非常重要的启发因素,所以搜索引擎在计算相似性得分时,往往会增加标题词的权重。作弊者利用这一点,将与网页主题无关的目标词重复放在标题位置来获得较高的排名。5、 网页重要标签作弊 网页不像普通文本格式,是...
有谁知道搜索引擎的原理及内部的算法
在浩如烟海的Internet上,特别是其上的Web(World Wide Web万维网)上,不会搜索,就不会上网。网虫朋友们,你了解搜索引擎吗?它们是怎么工作的?你都使用哪些搜索引擎?今天我就和大家聊聊搜索引擎的话题。 一、搜索引擎的分类 获得网站网页资料,能够建立数据库并提供查询的系统,我们都可以把它叫做搜索引擎。按照工作原理...
WEB超链分析算法的WEB超链分析算法
Google通过PageRank元算法计算出网页的PageRank值,从而决定网页在结果集中的出现位置,PageRank值越高的网页,在结果中出现的位置越前。2.1.1 PageRank算法PageRank算法基于下面2个前提:前提1:一个网页被多次引用,则它可能是很重要的;一个网页虽然没有被多次引用,但是被重要的网页引用,则它也可能是很重要的;一个...
什么是无尺度网络
红色表示它们进一步与其它著名建筑师或建筑相连接的网页集群。 上面我们的简单计算有个前提,那就是你的熟人都是彼此不相识的。但是在实际生活中,他们中有许多人是互相认识的。事实上,人类社会可以区分为一个个具有相似特质(例如收入或者兴趣)的小集群。自从1970年代Granovetter在哈佛大学读研究生时首开...
5+PageRank是哪一+粒度对应的算法()(2分)A:网站粒度B:网页粒度C:网页块...
代表了它在整个网页图中的重要程度。网站粒度是指以整个网站为单位来进行计算和评估,而网页块粒度则是以网页的部分内容或区块为单位进行计算和评估。但是,PageRank算法并没有在网站粒度或网页块粒度上进行计算,而是将每个网页看作是原子级的单位,进行权重计算和排序。
知网论文相似度检测很准确吗
知网论文相似度检测的准确性相对较高,但并不是百分之百准确。知网查重系统采用了先进的文本匹配技术和算法,能够对论文进行多层次、多维度的比对和分析,检测出论文中存在的相似内容。但是,由于学术抄袭行为的复杂性和多样性,有时候可能会出现漏检或误判的情况。此外,知网的数据库虽然覆盖面广,但也可能...
如何查网站pr值
查网站pr值的方法:1、打开浏览器,搜索站长工具,进入站长工具。2、进入站长工具之后,选择seo信息查询:pr查询。3、输入查询的网址,然后点击查询,即可完成查询pr值。PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的...
拔码感冒: 据统计,网页上的大部分相同的页面占29%,而主体内容完全相同的占22%,这些重复网页有的是没有一点改动的拷贝,有的在内容上稍作修改,比如同一文章的不同版本,一个新一点,一个老一点,有的则仅仅是网页的格式不同(如 HTML, ...
新乡市18858152745: 怎样用python或者是java计算文本相似度 - ?
拔码感冒: 第一步:把每个网页文本分词,成为词包(bag of words).第三步:统计网页(文档)总数M.第三步:统计第一个网页词数N,计算第一个网页第一个词在该网页中出现的次数n,再找出该词在所有文档中出现的次数m.则该词的tf-idf 为:n/N...
新乡市18858152745: 搜索引擎如何判断网页文章的重复度 - ?
拔码感冒: 搜索引擎如何判断网页文章的重复度?在这个科技高度发达的时代,百度已经成为人们能获取消息的主要途径.但如今的百度,到处充斥着一些重复的内容,对用户的访问造成很大的困扰.因此,百度需要对网页重复进行判断,对重复的网页,...
新乡市18858152745: 如何用python计算文本的相似度 - ?
拔码感冒: 同学你好~文本的相似度计算是NLP(自然语言处理)方向的范畴,感兴趣可以找相关的书籍详细学习研究.同学问的这个问题,可以搜索:python文本相似度计算(简书).我这里就不造轮子,复制粘贴过来了.希望能帮到你~
新乡市18858152745: 有没有对比两个网站有多大程度相同的工具??
拔码感冒: 一般的工具是对两个网页相似度进行查询,对两个站进行判断,好像这个难度大了点,不知有没有这样的工具我现在经常用的是站长精灵里的网页相似度查询功能,有时伪原创文章弄好后,就用它来和原始文件进行对比,看看相似度是多少,如果过高就再调整一下,相对来说它还是挺方便的,可以对网上的任意两个网页进行查询,也可以对本地的文件进行查询,最好的是它还可以对网上的网页和本地的文件进行混合查询,就不用传来传去调整了.转个图给你看一下,有数据,有图示,还有标红文字,非常直观:
新乡市18858152745: 怎么筛选网页上出现重复内容 - ?
拔码感冒: 将重复的代码,例如左侧的导航和右上角的导航,设法移到网页代码的下部,或者独立出来用js或直接用iframe插入等调用.尽量让引擎吃到的每个网页,第一口咬下去都觉得新鲜有料.搜索引擎在收录网页的时候,就会分析页面内容因应产生...
新乡市18858152745: 如何来检查网站是否存在重复内容 - ?
拔码感冒: V饕?梢酝ü?幌路椒ɡ炊酝? 是否存在重复内容进行判断. 福猫生活网上超市 一、通过在搜索引擎输入网址的内容,开查看收录页面 当在搜索引擎输入网页内容中的一段话,如果出现一样的红色文字,说明就是重复内容.如果过多的话,就 说...
新乡市18858152745: 百度是如何判断网页的相关性? - ?
拔码感冒: 现在搜索引擎对于相关性的分析主要是有两种方法: 一种是关健词在文本中的重要程度,主要包括出现次数,出现的位置,有没特殊标记等,比如现在在标题中的相关性显然比出现在正文中的相关性会大很多. 第二种就是超链分析,如果有很多相关的页面以相关的关健词做为锚文本链接向这个页面,那么搜索引擎会认为这个页面会与关健词相关,从而给以好的排名.相关性是基于用户利用搜索引擎的目的就是能迅速的找出其所要的内容,这时候用户会传达给搜索引擎一个关健词,那么搜索引擎去区分网页就只能根据关健词与网页之间的相关性,或者说是关联来帮用户筛选.
新乡市18858152745: 如何使用MapReduce计算相似度 - ?
拔码感冒: et expansion),主要有如下几种方法(以Document Similarity为例):Brute Force:最直接、暴力的方法,两个for循环,计算任意两篇文档之间的相似度,时间复杂度为O(n^2).这种方法可以...
新乡市18858152745: 网站有大量重复内容和相似度很高页面,该怎么处理 - ?
拔码感冒: 通常网页的相似度主要指的是两个网页的内容有很多部分相同. 当搜索引擎对比两个网页时,会通过两种方法进行对比分析.第一是根据网页内容上的摘要模块进行分析,如果两个网页上MD5值数据一样,那么这两个网页的相似性就非常高.第二,就是根据网