前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[文本语义相似] 基于simhash相似度

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

作者头像
MachineLP
发布2020-05-08 17:07:46
1.1K0
发布2020-05-08 17:07:46
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

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

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

代码语言:javascript
复制
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 ) 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档