采集的文章和关键词不符(如何比较两篇文章的相似度(1)_软件)
优采云 发布时间: 2021-12-05 15:03采集的文章和关键词不符(如何比较两篇文章的相似度(1)_软件)
如何比较两篇文章的相似度文章在互联网搜索引擎层面被广泛使用。试想一下,如果不进行类似的比较,当前互联网信息被复制和复制时,搜索引擎结果页面将排名第一。结果可能都是相似的内容。为了避免上述问题,谷歌基于 WWW07 论文 Detecting Near-Duplicates for Web Crawling 创建了 simhash。
simhash 背景
常用余弦夹角算法、欧氏距离、Jaccard相似度、最长公共子串、编辑距离等,这些算法在比较的文本数据不多的情况下比较好用。如果我们每天的采集数据以千万计,性能将是一个非常大的瓶颈。传统的hash算法只负责将原创内容尽可能均匀、随机地映射到一个签名值上,原理上相当于一种伪随机数生成算法。如果传统hash算法生成的两个签名相等,则说明原创内容在一定概率下相等;如果它们不相等,则除了原创内容不相等外,不会提供任何信息,因为即使原来的内容只相差一个词Section,得到的签名也很可能相差很大。因此,哈希算法仅适用于身份检测,不适用于相似性检测。理想的哈希函数需要为几乎相同的输入内容生成相同或相似的哈希值。换句话说,hash值的相似度必须直接反映输入内容的相似度,所以传统的hash方法比如md5无法满足我们的。需要。换句话说,hash值的相似度必须直接反映输入内容的相似度,所以传统的hash方法比如md5无法满足我们的。需要。换句话说,hash值的相似度必须直接反映输入内容的相似度,所以传统的hash方法比如md5无法满足我们的。需要。
simhash算法原理
Simhash 是一种可以计算文档相似度的哈希算法。通过simhash,可以将一段文章映射到64bit,然后将两段文章与64位的汉明距离进行比较,就可以知道文章的类似程序。如果文章的汉明距离分割的两篇文章后面跟着“美国(4)51区(5)员工(3))”)称为(1)内部(2) 是的 (1) 9 帧 (3) UFO (5) Zeng (1) Seeing (3) Gray (4) Alien) ) (5)",括号内代表单词在整个句子中的重要性,数字越大越重要。hash。每个单词通过hash算法转换成hash值,例如" 把上面每个词计算出来的序列值累加起来,就变成只有一个序列串了。例如“美国”中的“4 -4 -4 4 -4 4”和“51区”中的“5 -5 5 -5 5 5”,将每个位相加,“4+5 -4+- 5- 4+5 4+-5 -4+5 4+5" == ""9 -9 1 -1 1 9"。这里仅以两个单词为例,实际计算需要累加所有单词的序列字符串,降维,把4步计算的“9 -9 1 -1 1 9”变成0 1的字符串,形成我们最终的simhash签名,如果每一位都大于0,就记录下来为1,小于0则记为0,最终计算结果为:“1 0 1 0 1 1”。“美国”中的4 -4 -4 4 -4 4”和“51区”中的“5 -5 5 -5 5 5”,将每一位相加,“4+5 -4+-5- 4+” 5 4+-5 -4+5 4+5" == ""9 -9 1 -1 1 9"。这里以只统计两个词为例,实际计算需要累加所有词的序列串。降维。将分4步计算的“9 -9 1 -1 1 9”变成0 1的字符串,形成我们最终的simhash签名。如果每个位大于0,则记为1,如果小于0,则记为0。最终的计算结果为:“1 0 1 0 1 1”。“美国”中的4 -4 -4 4 -4 4”和“51区”中的“5 -5 5 -5 5 5”,将每一位相加,“4+5 -4+-5- 4+” 5 4+-5 -4+5 4+5" == ""9 -9 1 -1 1 9"。这里以只统计两个词为例,实际计算需要累加所有词的序列串。降维。将分4步计算的“9 -9 1 -1 1 9”变成0 1的字符串,形成我们最终的simhash签名。如果每个位大于0,则记为1,如果小于0,则记为0。最终的计算结果为:“1 0 1 0 1 1”。而实际计算需要将所有单词的序列串累加。降维。将分4步计算的“9 -9 1 -1 1 9”变成0 1的字符串,形成我们最终的simhash签名。如果每个位大于0,则记为1,如果小于0,则记为0。最终的计算结果为:“1 0 1 0 1 1”。而实际计算需要将所有单词的序列串累加。降维。将分4步计算的“9 -9 1 -1 1 9”变成0 1的字符串,形成我们最终的simhash签名。如果每个位大于0,则记为1,如果小于0,则记为0。最终的计算结果为:“1 0 1 0 1 1”。
相关工具:
其他算法:
参考文章:
相关文章:中文分词自然语言处理用于消息验证哈希算法HMAC词向量实战:Word2Vec、FastText、Glove