我是靠谱客的博主 悦耳奇迹,最近开发中收集的这篇文章主要介绍相似度的算法(编辑距离法)(Java实现代码),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

public class Suanfa {
public static void main(String[] args) {
String Str_1="abcdefghijklmuvwxyz";
String Str_2="ijkabclmdefghpq";
//length
int Length1=Str_1.length();
int Length2=Str_2.length();
int Distance=0;
if (Length1==0) {
Distance=Length2;
}
if(Length2==0)
{
Distance=Length1;
}
if(Length1!=0&&Length2!=0){
int[][] Distance_Matrix=new int[Length1+1][Length2+1];
//编号
int Bianhao=0;
for (int i = 0; i <= Length1; i++) {
Distance_Matrix[i][0]=Bianhao;
Bianhao++;
}
Bianhao=0;
for (int i = 0; i <=Length2; i++) {
Distance_Matrix[0][i]=Bianhao;
Bianhao++;
}
char[] Str_1_CharArray=Str_1.toCharArray();
char[] Str_2_CharArray=Str_2.toCharArray();
for (int i = 1; i <= Length1; i++) {
for(int j=1;j<=Length2;j++){
if(Str_1_CharArray[i-1]==Str_2_CharArray[j-1]){
Distance=0;
}
else{
Distance=1;
}
int Temp1=Distance_Matrix[i-1][j]+1;
int Temp2=Distance_Matrix[i][j-1]+1;
int Temp3=Distance_Matrix[i-1][j-1]+Distance;
Distance_Matrix[i][j]=Temp1>Temp2?Temp2:Temp1;
Distance_Matrix[i][j]=Distance_Matrix[i][j]>Temp3?Temp3:Distance_Matrix[i][j];
}
}
Distance=Distance_Matrix[Length1][Length2];
}
double Aerfa=1-1.0*Distance/(Length1>Length2?Length1:Length2);
System.out.println(Aerfa);
}
}

最后

以上就是悦耳奇迹为你收集整理的相似度的算法(编辑距离法)(Java实现代码)的全部内容,希望文章能够帮你解决相似度的算法(编辑距离法)(Java实现代码)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部