<< 新闻中心

文本相似度算法——简单共有词+编辑距离


——文本相似度算法小讲堂

2020-07-07 17:35:25 作者 书写人生

 简单共有词是skycto文本相似度计算服务中10大相似算法之一,skycto文本相似算法服务主要以webservice形式对外提供相似度计算接口,独立自主可控,可用于国产化平台。skycto文本相似度服务能够独立部署、联合部署、嵌入部署等多种形式,支持国产化OpenJDK、中标麒麟、龙芯、飞腾等软硬件。skycto文本相似算法服务支持1:1相似度计算(阈值范围:0.0-1.0),支持1:N计算相似度Top排序(按照最相似前N排序返回),支持数据库指定字段计算并排序,支持数据库多个字段联合计算排序,支持Lucene快速索引等。

√  算法二:简单共有词

 概念:通过计算两篇文档共有的词的总字符数除以最长文档字符数来评估他们的相似度。

 假设有AB两句话,先取出这两句话的共同都有的词的字数然后看哪句话更长就除以哪句话的字数。

 步骤:

 (1)取出两段话的所有共有词的字符数

 (2)共有词字符数/较长那段话的字符数为最终的相似数

 相似度=共有词字符数/较长那段话的字符数

 eg

 句子A:我爱购物 句子B: 我爱读书

 共有词:我 /

 共有词字符数:2

 因为两句话的字符数一样,所以取任意一句话的字符数,字符数为:4

 相似度=共有词字符数/最长字符数=2/4=0.5

 所以相似度为0.5

√  算法三:编辑距离

 概念:编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。

 步骤:

 存在字符串A和字符串B,由AB需要的最少编辑操作次数除以两者之间的最大长度

 相似度=最少编辑操作次数除以两者之间的最大长度

 eg

 句子A:kitten 句子B:sitten

 A转B的编辑操作次数最少为1,,两着之间的最大长度为6.A.length=6,B.length=6

 相似度=1-1/Math.Max(A.length,B.length)=0.83


 我们的联系方式:

 公司名称:四川书写人生科技有限公司

 通信地址:成都市金牛区兴盛西路2号固特大厦3A405A

 公司座机:028-83410634

 微信电话:191-8044-7517

 联系邮件:admin@skycto.com

 我们承诺:邮件12小时回,微信4小时回复,欢迎致电联系。

推荐阅读

首页 分享微博 分享微信 回到顶部