Java代码实现余弦相似度算法比较两字符串相似度

本文介绍了如何使用Java实现余弦相似度算法来比较两个字符串的相似度。由于最短编辑距离不适用,作者转向学习并应用余弦相似度。文章中提供了代码示例,并附带个人理解的注释,旨在方便日后学习和参考。
摘要由CSDN通过智能技术生成

因工作需要比较两个两个字符串的相似度比较,由于最短编辑距离算法不符合需求,就又找其他算法,在网上看到了另一个算法:余弦相似度算法。于是学习了一下,并写篇博客保存,以便学习以及日后用到。
代码如下:

import java.util.HashMap
import java.util.Map;
import java.util.Set;
  


  /*
   * 计算两个字符串(英文字符)的相似度,简单的余弦计算,未添权重
   */
   

public class AnotherCompare {
Map<Character, int[]> vectorMap = new HashMap<Character, int[]>();   

int[] tempArray = null;

public AnotherCompare(String string1, String string2) {

    for (Character character1 : string1.toCharArray()) {  //拆解为向量
        if (vectorMap.containsKey(character1)) {   //该字符是否已经存在map中
            vectorMap.get(character1)[0]++;   //key对应的值是一个数组,第一个字符串的字符出现次数存储在数组第一个位置
        } else {
            tempArray = new int[2];  
            tempArray[0] = 1;  //如果字符没有出现过,就添加到map中,数组第一个位置设为1
            tempArray[1] = 0;
            vectorMap.put(character1, tempArray);
        }
    }
    for (Character
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值