拼写检查器的C#LevenshteInstance算法

拼写检查器的C#LevenshteInstance算法,c#,levenshtein-distance,C#,Levenshtein Distance,嗨,我正在使用levenshtein算法来计算两个字符串之间的差异,使用下面的代码。它目前提供了从“答案”到“目标”所需的更改总数,但我想将这些更改分为正在发生的错误类型。因此,将错误分类为删除、替换或插入 我尝试添加一个简单的计数,但我对这方面还不太熟悉,不太了解代码是如何工作的,所以不知道如何进行 static class LevenshteinDistance { /// <summary> /// Compute the distanc

嗨,我正在使用levenshtein算法来计算两个字符串之间的差异,使用下面的代码。它目前提供了从“答案”到“目标”所需的更改总数,但我想将这些更改分为正在发生的错误类型。因此,将错误分类为删除、替换或插入

我尝试添加一个简单的计数,但我对这方面还不太熟悉,不太了解代码是如何工作的,所以不知道如何进行

static class LevenshteinDistance
    {
        /// <summary>
        /// Compute the distance between two strings.
        /// </summary>
        public static int Compute(string s, string t)
        {
            int n = s.Length;
            int m = t.Length;
            int[,] d = new int[n + 1, m + 1];
            // Step 1
            if (n == 0)
            {
                return m;
            }
            if (m == 0)
            {
                return n;
            }
            // Step 2
            for (int i = 0; i <= n; d[i, 0] = i++)
            {
            }
            for (int j = 0; j <= m; d[0, j] = j++)
            { 
            }
            // Step 3
            for (int i = 1; i <= n; i++)
            {

                //Step 4
                for (int j = 1; j <= m; j++)
                {
                    // Step 5
                    int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;
                    // Step 6
                    d[i, j] = Math.Min(
                        Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1),
                        d[i - 1, j - 1] + cost);
                }
            }
            // Step 7
            return d[n, m];
        }
    }
静态类levenshteindication
{
/// 
///计算两个字符串之间的距离。
/// 
公共静态整数计算(字符串s、字符串t)
{
int n=s.长度;
int m=t.长度;
int[,]d=新的int[n+1,m+1];
//第一步
如果(n==0)
{
返回m;
}
如果(m==0)
{
返回n;
}
//步骤2

对于(int i=0;我在google上查找算法本身,以便您更好地识别步骤、它们是什么以及它们如何工作……然后将3个整数计数器保留在循环之外(全局变量或引用参数)。根据需要,在每个步骤增加适当的计数器。此外,从外观上看,您需要重新编写算法,以便在分配成本部分时,您能够确定您正在执行的操作。一般来说,算法本身并不关心步骤本身,只需要你的算法计算Levenshtein矩阵。为了计算矩阵中的运算顺序,请看这个问题。嗨,我花了几个小时来查找评论,我不知道在哪里。我搜索了google和t的实现每次我看到这个算法时,它看起来都不一样。内文,我理解你的意思,我想。我设置了3个变量来递增,但它剖析了代码,所以我知道每个变量的去向,这也是我仍在努力的方向。如果有人有任何想法,我将不胜感激!