【算法】海量数据相似度计算之simhash短文本查找

在前一篇文章 《海量数据相似度计算之simhash和海明距离》 介绍了simhash的原理,大家应该感觉到了算法的魅力。但是随着业务的增长 simhash的数据也会暴增,如果一天100w,10天就1000w了。我们如果插入一条数据就要去比较1000w次的simhash,计算量还是蛮大,普通PC 比较1000w次海明距离需要 300ms ,和5000w数据比较需要1.8 s。看起来相似度计算不是很慢,还在秒级别。给大家算一笔账就知道了:

随着业务增长需要一个小时处理100w次,一个小时为3600 *1000 = 360w毫秒,计算一下一次相似度比较最多只能消耗 360w / 100w = 3.6毫秒。300ms慢吗,慢!1.8S慢吗,太慢了!很多情况大家想的就是升级、增加机器,但有些时候光是增加机器已经解决不了问题了,就算增加机器也不是短时间能够解决的,需要考虑分布式、客户预算、问题解决的容忍时间?头大时候要相信人类的智慧是无穷的,泡杯茶,听下轻音乐:)畅想下宇宙有多大,宇宙外面还有什么东西,程序员有什么问题能够难倒呢?

加上客户还提出的几个,汇总一下技术问题:

  • 1、一个小时需要比较100w次,也就是每条数据和simhash库里的数据比较需要做到3.6毫秒。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

九层之台起于累土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值