电子商务网站建设教学总结,modernize wordpress,电子商务网站建设 以为例,兰州营销型网站建设1.需求
想判断2个字符串之间的相似度或者相关性#xff0c;网上有很多成熟的NLP相关的工具类或者算法#xff0c;下面的例子主要是针对两个字符串里面的字符出现相同次数的维度统计的一种简单算法#xff0c;不一定适用所有场景。
2.代码
package com.xxx;/*** 字符串相似…1.需求
想判断2个字符串之间的相似度或者相关性网上有很多成熟的NLP相关的工具类或者算法下面的例子主要是针对两个字符串里面的字符出现相同次数的维度统计的一种简单算法不一定适用所有场景。
2.代码
package com.xxx;/*** 字符串相似度判别*/
public class StringSimilarityTest {public static void main(String[] args) {String root 我有一个苹果;String str2 我有苹果;String str3 我有一个梨子;String str4 我想吃苹果;similarity(root, str2);similarity(root, str3);similarity(root, str4);}/*** 分析2个字符串的相似度*/public static float similarity(String str1,String str2) {//计算两个字符串的长度。int len1 str1.length();int len2 str2.length();//建立上面说的数组比字符长度大一个空间int[][] dif new int[len1 1][len2 1];//赋初值步骤B。for (int a 0; a len1; a) {dif[a][0] a;}for (int a 0; 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] min(dif[i - 1][j - 1] temp, dif[i][j - 1] 1,dif[i - 1][j] 1);}}//计算相似度float similarity 1 - (float) dif[len1][len2] / Math.max(str1.length(), str2.length());System.out.println(相似度similarity);return similarity;}//得到最小值private static int min(int... is) {int min Integer.MAX_VALUE;for (int i : is) {if (min i) {min i;}}return min;}
}3.结果
相似度0.6666666
相似度0.6666666
相似度0.5