<< 新闻中心

文本相似度算法——Jaro–Winkler距离


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

2020-07-07 17:51:22 作者 书写人生

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

√  算法十:Jaro–Winkler距离(Jaro–Winkler Distance

 概念:J-W距离也常用来度量两个字符串的相似性,它实际上 Jaro distance的一种变种。 Jaro distance距离属于编辑距离的一类,被用于记录链接领域来将异构数据源中的records链接到同义实体中,也可以用于拼写纠错。

 Jaro-Winkler算法给予了起始部分就相同的字符串更高的分数,它定义了一个前缀范围p,对于要匹配的两个字符串,如果前缀部分有长度为L的部分字符串相同,则Jaro-Winkler Distance:


 其中:

 dj/dJ是Jaro distance最后得分,即Jaro距离

 L是前缀部分匹配的长度(字符串的首位开始到匹配不成功之间的数量)

 P是一个范围因子常量,用来调整前缀匹配的权值,但是P的值不能超过0.25,因为这样最后得分可能超过1.Winkler的标准默认设置值P=0.1

 步骤:

 (1) 给定两个字符串A和字符串B,对字符串A和字符串B进行匹配,得到匹配数量m

 (2)求出字符串A和字符串B的长度

 (3)求匹配上的字符数中的换位次数t

 (4)用Jaro公式求Jaro距离(simj),公式如下所示:

      

 (5)求出匹配长度L

 (6) P是一个范围因子常量,用来调整前缀匹配的权值,但是P的值不能超过0.25,因为这样最后得分可能超过1.Winkler的标准默认设置值P=0.1

 (7)用Jaro-Winkler Distance距离公式

       

 求出Jw距离dw

 eg

 字符串A:我爱购物,字符串B:我爱读书

 匹配数量m=2

 字符串A的长度s1=4,字符串B的长度s2=4

 由于匹配上的字符串中的字符不需要换位,所以t=0

 用Jaro公式求得Jaro距离dj/dJ=1/3((2/4+2/4+2/2=0.67

 字符串A和字符串B的前缀匹配数L=2(匹配的分词为我/爱)

 Jw距离dw=Jaro距离+L*P1-Jaro距离)=1/3((2/4+2/4+2/2+2*0.11-1/3((2/4+2/4+2/2))=11/15=0.73


 我们的联系方式:

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

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

 公司座机:028-83410634

 微信电话:191-8044-7517

 联系邮件:admin@skycto.com

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

推荐阅读

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