java文本相似度,java判断文字相似
如何解决写爬虫IP受阻的问题?立即使用。
java抓取文字的最大相似度代码:
公共静态void main(String[] args) {
//要比较的两个字符串
str 1=‘把一滴粮食流在地上’;
str 2=‘汗水滴入泥土’;
levenshtein(str1,str 2);
str 1=‘汗水滴入土壤’;
str 2=‘汗水滴入土壤’;
levenshtein(str1,str 2);
Str1=除草日是中午;
str 2=‘汗水滴入土壤’;
levenshtein(str1,str 2);
Str1=我想除草日是中午;
Str2=除草日是sag ;
levenshtein(str1,str 2);
str 1=‘我是最帅的asdasd’;
Str2=最帅的asdasdqeqwe ;
levenshtein(str1,str 2);
}
/**
* DNA分析、拼写检查、语音识别、剽窃检测
*
* @createTime 2012-1-12
*/
public static void levenshtein(String str 1,String str2) {
//计算两个字符串的长度。
int len 1=str 1 . length();
int len 2=str 2 . length();
//构建上面提到的数组,比字符长度大一个空格
int[][]dif=new int[len 1 1][len 2 1];
//赋值初始值,步骤b。
for(int a=0;a=len1a ) {
dif[a][0]=a;
}
for(int a=0;a=len2a ) {
dif[0][a]=a;
}
//计算两个字符是否相同,计算左上值。
内部温度;
for(int I=1;i=len1i ) {
for(int j=1;j=len2j ) {
if(str 1 . charat(I-1)==str 2 . charat(j-1)){
temp=0;
}否则{
temp=1;
}
//取三个值中的最小值
dif[I][j]=min(dif[I-1][j-1]temp,dif[i][j - 1] 1,
dif[I-1][j]1);
}
}
/*System.out.println(比较 string \ str1 \ 和\ str 2 \ );
//取数组右下角的值,相同不同的位置代表不同字符串的比较。
system . out . println( string str 1 的长度[ str1.length() ]和 str2 的长度[ str 2 . length()]);
System.out.println(差分步长: dif[len 1][len 2]/ math . max(str 1 . length()、str 2 . length()));
//计算相似度
float相似度=1-(float)dif[len 1][len 2]/math . max(str 1 . length()、str 2 . length());
system . out . println(-(float)1/6);
System.out.println(使用方法得到的相似度为:相似度);*/
float相似度=1-(float)dif[len 1][len 2]/math . max(str 1 . length()、str 2 . length());
system . out . println( string[ str 1 ]和[str2]的相似度为:相似性);
system . out . println();
}
//获取最小值
私有静态int min(int.是){
int min=整数。MAX _ VALUE
for (int i : is) {
if (min i) {
min=I;
}
}
返回最小值;
}输出的结果:
字符串【汗滴一粒到土】和【汗滴一粒到土】的相似度是:0.83333。
字符串【汗滴入土】和【汗滴入土】的相似度是:1.0。
字符串【中午除草】和字符串【大汗淋漓】的相似度是:0.0。
字符串【我觉得除草日是中午】和【除草日是sag】的相似度是:0.125。
字符串【我的帅asdasd】和【帅asdasdqeqwe】的相似度为:0.53846157以上是java抓取单词最大相似度的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。