大量文本查重相似度计算功能设计-基于simhash+相似度算法

最近做文本查重功能,陆续遇到一些问题,做一下记录:

1、simhash分桶策略,只适合基本完全相同的文本查重,比如网页查重。64位simhash如果有3位以内的海明距离,则认为文本一致;存储使用hbase等列式存储,分4个桶,64位simhash分4个桶存储,必有一个key一致。这样性能很高,但是也只能查相似度非常高的,90+%以上的;

2、业务需要查询与当前文本重复率达到指定百分比以上的文本,仅仅使用simhash算法是不够的,因此最终采用了simhash算法(高性能)与其它相似度算法(编辑距离算法,可以得到相似度比值,相对于simhash算法性能低)相结合的方式;

a.simhash算法未采用分桶策略,因为业务可能设置较低的相似度,分桶数量过多会占用过多空间,同时也失去了分桶的意义;

b.根据业务测试,估算出较为合适的海明距离8-12,每新增一个文本,过滤hbase中的全部simhash,进行海明距离计算,得到可能相似的文本列表。

c.simhash海明距离判断相似的文本,通过id获取到详细文本,进行下一步的编辑距离相似度计算;编辑距离相似度计算,为提高效率,使用了多线程。

3、优化空间

a、simhash计算海明距离,程序逐个进行运算,数据量较小的情况下可以满足,样本数据量增加到数万至10W+以上,查重时间过长难以满足性能要求;查询资料说可以使用PostgreSQL进行大数据量的海明距离运算。

b、海明距离相似度过滤,存在一定的误判可能性,需要针对自身业务进行测试,设定合适的海明距离。同时业务需要允许一定的查重误判(较小比例)可能性;

c、文本的传输存储,需要消耗一定的网络带宽,可以考虑文本存储和编辑距离运算同机部署,以减小网路开销;

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于微博文本相似度计算simhash算法可能更适合。 余弦相似度算法是一种常见的文本相似度计算方法,它可以计算两个文本向量之间的夹角余弦值,用于衡量它们的相似度。但是,当面对大量文本时,计算文本向量的时间复杂度很高,这可能会影响性能。 相比之下,simhash算法可以快速计算文本的哈希值,而且能够在哈希值之间计算汉明距离,从而衡量文本相似度simhash算法的优点是它能够快速处理大量文本,并且可以识别并过滤掉文本中的噪声和重复内容,因此可能更适合微博文本相似度计算。 ### 回答2: 对于微博文本相似度计算simhash算法更适合。 首先,simhash算法是一种局部敏感哈希算法,可以快速计算文本之间的相似度。它通过将文本表示为一条固定长度的哈希值,在计算相似度时可以直接比较哈希值的相似程度,而不需要对文本进行逐字逐句的比较。这样可以大大提高计算效率,尤其对于微博这样大量文本的场景,计算速度是一个重要考量因素。 其次,微博文本往往短小,包含的信息量有限,使用余弦相似度算法可能不够准确。余弦相似度算法是基于向量的相似性度量,将文本表示为向量后,通过计算向量之间的夹角余弦值来得到相似度。然而,微博文本的长度较短,往往无法包含足够多的特征信息,导致向量表示不准确,从而影响相似度计算的准确性。 最后,simhash算法在处理文本复制粘贴、文本重复等问题时有较好的效果。微博上经常出现转发、评论等类似内容的现象,使用simhash算法可以有效地区分出相似但不完全一致的文本。这使得simhash算法更适合微博文本相似度计算。 综上所述,simhash算法相较于余弦相似度算法更适合微博文本相似度计算,因为它具有更高的计算效率和更好的应对微博文本特点的能力。 ### 回答3: 对于微博文本相似度计算simhash算法更适合。 首先,simhash算法是一种利用哈希函数计算文本指纹的方法。在计算微博文本相似度时,可以将微博文本经过处理得到对应的simhash值,并比较两个simhash值的汉明距离,汉明距离越小表示两个文本相似度越高。相比之下,余弦相似度算法需要对文本进行向量化表示,计算文本向量之间的余弦相似度simhash算法相对于余弦相似度算法来说,计算速度更快,计算文本指纹的过程比较简单,而且对文本的维度和长度不敏感,适用于处理大规模的文本数据。 其次,微博文本的特点是短文本,通常只有很少的几十个字。对于短文本相似度计算simhash算法更适合。因为余弦相似度算法更适合长文本相似度计算,对于短文本来说,由于文本长度较短,导致文本中的关键词权重较小,很容易受到噪音的干扰。而simhash算法不会受到文本长度的限制,可以更好地处理短文本相似度计算。 综上所述,simhash算法更适合微博文本相似度计算。它具有计算速度快、对文本长度不敏感以及适用于处理大规模文本数据的优势,更适合用于短文本的高效相似度计算

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值