专栏首页小鹏的专栏[文本语义相似] 基于simhash相似度

[文本语义相似] 基于simhash相似度

文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于simhash相似度。

算法描述:先计算两句子的simhash二进制编码,然后使用海明距离计算,最后使用两句的最大simhash值归一化得相似度。

from simhash import Simhash

def sim_simhash(s1, s2):
    """先计算两文档的simhash值,然后使用汉明距离求相似度"""
    # 1. 计算文本simhash值
    a_simhash = Simhash(s1, f=64)  
    b_simhash = Simhash(s2, f=64)
    max_hashbit = max(len(bin(a_simhash.value)), len(bin(b_simhash.value)))
    # 2. 计算汉明距离汉明距离
    distance = a_simhash.distance(b_simhash)
    # 3. 归一化到0~1
    sim = 1 - distance / max_hashbit  
    return sim

word1 = '这是什么'
word2 = '这个什么价钱'
word_sim = sim_simhash( word1, word2 ) 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 文本相似度 | 余弦相似度思想

    我一直觉得,在数据分析领域,只有文本分析是最“接地气儿”的,“接地气儿”不是指最简单,而是我们普通大众的使用它最多。 我们每天使用互联网,但不一定每个人都炒股...

    数说君
  • [文本语义相似] 基于Jaccard相似度

    文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基...

    MachineLP
  • 文本相似度计算

    BM25(i) = \frac{词i的数量}{总词数}\frac{(k+1)C}{C+k(1-b+b\frac{|d|}{avdl})}log(\frac{总文...

    luxuantao
  • 海量数据相似度计算之simhash短文本查找

    在前一篇文章 《海量数据相似度计算之simhash和海明距离》 介绍了simhash的原理,大家应该感觉到了算法的魅力。但是随着业务的增长 simhash的数据...

    smy
  • 谷歌 AI:语义文本相似度研究进展

    最近基于神经网络的自然语言理解的研究的迅速发展,尤其是关于学习文本语义表示的研究,使一些十分新奇的产品得到了实现,比如智能写作与可对话书籍。这些研究还可以提高许...

    AI研习社
  • 文本相似度——自己实现文本相似度算法(余弦定理)

    最近由于工作项目,需要判断两个txt文本是否相似,于是开始在网上找资料研究,因为在程序中会把文本转换成String再做比较,所以最开始找到了这篇关于 距离编辑算...

    shirayner
  • 基于word2vec的词语相似度计算

    作者:刘才权 编辑:黄俊嘉 基于word2vec的词语相似度计算 应用场景 假设你有一个商品的数据库,比如: ? 现在通过用户的输入来检索商品的价格,最简单的方...

    机器学习算法工程师
  • python文本相似度计算

    步骤 分词、去停用词 词袋模型向量化文本 TF-IDF模型向量化文本 LSI模型向量化文本 计算相似度 理论知识...

    机器学习AI算法工程
  • python文本相似度计算

    步骤 分词、去停用词 词袋模型向量化文本 TF-IDF模型向量化文本 LSI模型向量化文本 计算相似度 理论知识 ...

    小莹莹

扫码关注云+社区

领取腾讯云代金券