我是靠谱客的博主 怕孤独火,最近开发中收集的这篇文章主要介绍最短编辑距离算法,计算文章相似性(非原创)最短编辑距离算法代码:(网上到处都是,本篇只是备注一下),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
最短编辑距离算法代码:(网上到处都是,本篇只是备注一下)
原文 初始化是从0开始,合适来说是从1开始。从0开始,会出现a--->b 需要0次变动的情况
public static void getSimilarity(String str1, String str2) {
int len1 = str1.length();
int len2 = str2.length();
int[][] dif = new int[len1 + 1][len2 + 1];
//初始化值
for (int a = 1; a <= len1; a++) {
dif[a][0] = a;
}
for (int a = 1; a <= len2; a++) {
dif[0][a] = a;
}
int temp;
for (int i = 1; i <= len1; i++) {
for (int j = 1; j <= len2; j++) {
if (str1.charAt(i - 1) == str2.charAt(j - 1)) {
temp = 0;
} else {
temp = 1;
}
//算出值最小的那个
dif[i][j] = Math.min(dif[i - 1][j - 1] + temp, Math.min(dif[i][j - 1] + 1,dif[i - 1][j] + 1));
//System.out.println("dif["+(i-1)+"]["+(j-1)+"]+"+temp+"="+(dif[i - 1][j - 1] + temp)+",dif["+(i)+"]["+(j-1)+"]+1="+(dif[i][j - 1] + 1)+",dif["+(i-1)+"]["+(j)+"]+1="+(dif[i - 1][j] + 1)+"->dif["+i+"]["+j+"]="+dif[i][j]);
}
}
System.out.println("s1:"+str1 +"ns2:"+ str2);
System.out.println("最小变化距离是" + dif[len1][len2]);
// 计算相似度
float similarity = 1 - (float) dif[len1][len2]
/ Math.max(str1.length(), str2.length());
System.out.println("两者相似度是" + similarity*100+"%");
}
调用:
public static void main(String[] args) {
String article1 = "据美国有线电视新闻网早前报道,截至美东时间3月14日下午,美国已经至少有新冠肺炎确诊病例2655例,其中包括死亡病例56例。美国目前49个地方州、华盛顿哥伦比亚特区以及海外领地都出现了确诊病例。总统特朗普当天在白宫新闻发布会上表示,他本人已经于周五晚上接受了新冠病毒检测,出结果将需要1至2天。他还透露,出席当天发布会前,他本人已经被测过体温,检测显示其体温正常。白宫当天还宣布,将开始对与特朗普总统和副总统彭斯有密切接触的人员进行体温测量。当天白宫发布会前,工作人员为现场媒体人员测量了体温。据美国有线电视新闻网报道,有一名记者因体温不正常而被拒绝进入当天的新闻发布会。";
String article2 = "【原标题】美国新冠肺炎确诊超2600例 美国专家称:疫情可能还未到达真正高峰—来源:人民日报—编辑:王菲菲美国新冠肺炎确诊超2600例 美国专家称:疫情可能还未到达真正高峰美国新冠肺炎确诊超2600例 美国专家称:疫情可能还未到达真正高峰据美国有线电视新闻网报道,截至美东时间3月14日下午,美国已经至少有新冠肺炎确诊病例2655例,其中包括死亡病例56例。美国目前49个地方州、华盛顿哥伦比亚特区以及海外领地都出现了确诊病例。美国新冠肺炎确诊超2600例 美国专家称:疫情可能还未到达真正高峰美国新冠肺炎确诊超2600例 美国专家称:疫情可能还未到达真正高峰总统特朗普当天在白宫新闻发布会上表示,他本人已经于周五晚上接受了新冠病毒检测,出结果将需要1至2天。他还透露,出席当天发布会前,他本人已经被测过体温,检测显示其体温正常。白宫当天还宣布,将开始对与特朗普总统和副总统彭斯有密切接触的人员进行体温测量。当天白宫发布会前,工作人员为现场媒体人员测量了体温。据美国有线电视新闻网报道,有一名记者因体温不正常而被拒绝进入当天的新闻发布会。";
long s1=System.currentTimeMillis();
getSimilarity(article1,article2);
System.out.println(System.currentTimeMillis()-s1);
}
最后
以上就是怕孤独火为你收集整理的最短编辑距离算法,计算文章相似性(非原创)最短编辑距离算法代码:(网上到处都是,本篇只是备注一下)的全部内容,希望文章能够帮你解决最短编辑距离算法,计算文章相似性(非原创)最短编辑距离算法代码:(网上到处都是,本篇只是备注一下)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复