import java.util.HashSet;
import java.util.Set;

String text1 = "Hello";
String text2 = "Hell64664os";

// 计算两个字符串的Jaccard相似度
def jaccardSimilarity(str1,str2) {
    Set set1 = new HashSet(); // 存储第一个字符串的字符集合
    Set set2 = new HashSet(); // 存储第二个字符串的字符集合

    // 将第一个字符串的字符添加到集合set1中
    for (char c : str1.toCharArray()) {
        set1.add(c);
    }

    // 将第二个字符串的字符添加到集合set2中
    for (char c : str2.toCharArray()) {
        set2.add(c);
    }

    // 创建集合intersection存储set1和set2的交集
    Set intersection = new HashSet(set1);
    intersection.retainAll(set2); // 只保留交集部分

    int commonCount = intersection.size(); // 交集的大小
    int totalUniqueCount = set1.size() + set2.size() - commonCount; // 并集的大小

    // 计算Jaccard相似度并返回
    return (double) commonCount / totalUniqueCount;
}

double similarityScore = jaccardSimilarity(text1, text2);

// 四舍五入并保留两位小数
String formattedScore = String.format("%.2f", similarityScore);

// 打印Jaccard相似度分数
return "Jaccard 相似分数: " + formattedScore;
 
 
Back to Top