自然语言处理-Minimum edit distance
来源:互联网 发布:sql 相同数据合并 编辑:程序博客网 时间:2024/05/16 06:48
#include <iostream>#include <string>#define min(a,b) ((a)>(b))?(b):(a)using namespace std;int mindistance(string& a, string& b){int n = a.length();int m = b.length();int**dp;dp = new int*[n+1];for (int i = 0; i <= n; ++i)dp[i] = new int[m + 1];dp[0][0] = 0;for (int i = 1; i <= n; ++i)dp[i][0] = i;for (int j = 1; j <= m; ++j)dp[0][j] = j;int temp;for (int i = 1; i <= n; ++i){for (int j = 1; j <= m; ++j){temp = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);if (a[i-1] == b[j-1])dp[i][j] = min(temp, dp[i - 1][j - 1]);elsedp[i][j] = min(temp, dp[i - 1][j - 1] + 2);}}int ret = dp[n][m];/*for (int i = 0; i <= n; ++i){for (int j = 0; j <= m; ++j){printf("%4d ", dp[i][j]);}printf("\n");}*/for (int i = 0; i <= n; ++i)delete[] dp[i];delete[] dp;return ret;}int main(){string a = "abc";string b = "acbfbcd";int ret = mindistance(a, b);cout << ret << endl;system("PAUSE");return 0;}
参考文献:
原理篇:http://blog.csdn.net/huaweidong2011/article/details/7727482
C代码实现篇:http://blog.csdn.net/abcjennifer/article/details/7735272
0 0
- 自然语言处理-Minimum edit distance
- 自然语言处理学习篇02——Edit Distance
- 动态规划 求解 Minimum Edit Distance
- 动态规划 求解 Minimum Edit Distance
- mini edit distance & minimum cost alignment
- “最小编辑距离(Minimum Edit Distance)”
- Minimum Edit Distance最小编辑算法
- 最小编辑距离(Minimum edit distance)
- 编辑距离(Minimum Edit Distance)
- 最小编辑距离 | Minimum Edit Distance
- Minimum edit distance(levenshtein distance)(最小编辑距离)初探
- zzulioj 1206 字符串的修改(dp求解 Minimum Edit Distance )
- Minimum Edit Distance POJ 3356 && 51Nod 1183
- edit distance
- Edit Distance
- edit distance
- Edit Distance
- Edit Distance
- 【扣丁学堂】从应届生到“万元哥”你只需要这3步!
- iOS之CocoaAsyncSocket初尝试
- 64位的R中使用Rwordseg做文本分词遇到的安装问题
- 【codevs1060】搞笑世界杯 DP+数学
- HDU 1074 Doing Homework
- 自然语言处理-Minimum edit distance
- Eclipse 选择真机调试。
- Spring in Action 第二部分学习笔记
- ConnectivityManager和NetworkInfo详解
- 2、robot_framework入门
- nrf51822 如何更改发射功率
- 关于Java的UDP通信连接实现
- Windows 下编译VLC2.2.1 -Mys2+MinGW
- MySQL架构体系