<< 新闻中心

文本相似度算法——欧几里得距离、曼哈顿距离


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

2020-07-07 17:39:34 作者 书写人生

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

√  算法六:欧几里得距离(Euclidean Distance

 概念:通过计算两点间的距离来评估他们的相似度

 步骤:

 (1)将对比的两个句子进行分词,列出所有的分词

 (2)计算两个句子中的分词在所有分词中的词频,在A句子的词频作为x,在B句子的作为y进行欧几里得计算,得到欧几里得距离

 (3)求出相似度=1 ÷ (1 + 欧几里德距离)

 eg

 A:我爱购物,B:我爱读书

 所有的分词(不重复)=[//购物/读书]

 所有分词在A中的词频=[1,1,1,0], 所有分词在B中的词频=[1,1,0,1]

 计算n维的欧几里得距离公式:

      

 通过上述的欧几里得公式得到欧几里得距离为根号2,≈ 1.414(余3位)

 相似度=1 ÷ (1 + 欧几里德距离)=0.41

√  算法七:曼哈顿距离(Manhattan Distance

 概念:曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇,是种使用在几何度量空间的几何学用语,用以标明两个点上在标准坐标系上的绝对轴距总和。

 跟欧几里德距离有点像,简单来说就是d(i,j)=|x1-x2...|+|y1-y2...|,同理xnyn分别代表两个文档所有的词(不重复)在AB的词频。

 曼哈顿公式:d(i,j)=|x1-x2...|+|y1-y2...|

 步骤:

 (1)将对比的两个句子进行分词,列出所有的分词

 (2)计算两个句子中的分词在所有分词中的词频,在A句子的词频作为x,在B句子的作为y进行曼哈顿距离得计算,得到曼哈顿距离

 (3)求出相似度=1 ÷ (1 + 曼哈顿距离)

 eg

 A:我爱购物,B:我爱读书

 所有的分词(不重复)=[//购物/读书]

 所有分词在A中的词频(X=[1,1,1,0], 所有分词在B中的词频(Y=[1,1,0,1]

 计算n维的曼哈顿距离公式:d(i,j)=|x1-x2...|+|y1-y2...|

 根据曼哈顿距离公式求得距离为d=I1-1-1-0I+I1-1-0-1I=2

 相似度=1 ÷ (1 + 曼哈顿距离)=0.33


 我们的联系方式:

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

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

 公司座机:028-83410634

 微信电话:191-8044-7517

 联系邮件:admin@skycto.com

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

推荐阅读

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