字面文本相似度算法——SimHash

什么是字面文本相似度?

在NLP领域如何判断两个文本的相似性是一个基础性的任务,而文本的相似性往往可以理解为两个方面:字面相似性和语义相似性。怎么理解这个内容呢?就比如说白龙马赤兔马,乍一看,”WC,这不就是马么有啥区别?一个是白的一个是红的,也没啥!“,但是究其本质白龙马是龙啊,赤兔马就是一匹普通的坐骑。

上面的例子可以认为是“形似韵不同”的诠释,还有些是“形不似,神似”,等等。而字面文本相似度就是解决无论语义怎样,只要两个文本长得差不多,那就相似。

什么是SimHash?

说SimHash不难会想到Hash。

Hash对于一个了解数据结构的人来说并不陌生,可以认为是数据的一个“唯一性”id,但是并不唯一,这与hash算法和hash函数的选取有关,有可能出现冲突等问题。扯远了~

一个文本采用Hash后的编码可以代表这个文本,但是将整个文本的内容进行hash后,很少有两个hash文本很类似,也就是说,文本间的hash码会有很大的差异。也就无法度量文本间的字面相似度。

SimHash是Google发表于2007的论文《Detecting Near-Duplicates for Web Crawling》。设计的初衷是用于搜索引擎的网页去重的工作。

其实还有一个作用,就是用于判断两篇文章是否有抄袭。如果最后的SimHash的值相差不多,很可能文章就有抄袭。

SimHash还有一种叫法,称为局部Hash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值