编辑距离算法实现
2012-09-18 18:29
211 查看
(1)编辑距离是测量一个字符串转换成另外一个字符串需要操作(操作包括: 插入 删除 置换)的最小次数。
编辑距离可以用来计算两字符串的相似度,另外也可以通过余弦方法来计算两字符串的相似度
(2)算法实现采用动态规划算法,其求解过程类似于求两字符串的最长公共序列(LCS)
下面是算法实现:
编辑距离可以用来计算两字符串的相似度,另外也可以通过余弦方法来计算两字符串的相似度
(2)算法实现采用动态规划算法,其求解过程类似于求两字符串的最长公共序列(LCS)
下面是算法实现:
public class Distance { public static int getDistance(String s1, String s2) { int len1 = s1.length(); int len2 = s2.length(); int[][] d = new int[len1+1][len2+1]; int i=0, j=0; for(i=0; i<=len1; i++) d[i][0] = i; for(j=0; j<=len2; j++) d[0][j] = j; for (i = 1; i < len1+1; i++) for (j = 1; j < len2+1; j++) { int cost = 1; if(s1.charAt(i-1) == s2.charAt(j-1)) { cost = 0; } int delete = d[i - 1][j] + 1; int insert = d[i][j - 1] + 1; int substitution = d[i - 1][j - 1] + cost; d[i][j] = min(delete, insert, substitution); } return (d[len1][len2]); } public static int min(int d,int i,int s) { int temp = 0; if(d>i) temp = i; else temp = d; return s<temp?s:temp; } public static void main(String args[]) { String s1= "kitten"; String s2 = "sitting"; System.out.println(Distance.getDistance(s1, s2)); } }
相关文章推荐
- 最短编辑距离算法实现
- LD 算法实现(编辑距离算法)
- 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)
- 编辑距离算法的java实现
- Levenshtein distance最小编辑距离算法实现
- Levenshtein distance最小编辑距离算法实现
- 利用最小编辑距离算法实现文本diff
- Levenshtein distance最小编辑距离算法实现
- 字符串相关算法(编辑距离,最大公共字串)C#实现版
- LD 算法实现(编辑距离算法)
- [算法集锦]编辑距离分析与实现
- java实现编辑距离算法,计算字符串相似度
- 高效比对,返回最短编辑距离算法匹配度最高的数据
- 字符串相似度算法(编辑距离算法 Levenshtein Distance)
- 编辑距离算法(Edit Distance)
- 算法:编辑距离问题(动态规划)
- 编辑距离LCS算法详解:Levenshtein Distance算法计算两个字符串的相似度
- Edit Distance(编辑距离)算法。计算两个字符串的相似程度。
- 编辑距离问题算法分析
- 【Algorithm】字符串编辑距离(Levenshtein距离)C++算法实现