- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找一种用于计算 Levenshtein 编辑距离的算法,该算法还支持在 C# 中实现的两个相邻字母转置的情况。
例如单词“animals”和“ainmals”:在字母“n”和“i”之间切换不会被计为两个替补 - 这将有很大的距离 -但是 on 将被评分为两个字母的转置 - 距离更小 -
到目前为止我在搜索中达到了什么
最佳答案
请参阅维基百科上的实现。您可以轻松地调整算法以包括字母交换的情况。例如:
//bla bla. I'm just copying the code on the Wikipedia.
d[i, j] := minimum
(
d[i-1, j] + 1, // a deletion
d[i, j-1] + 1, // an insertion
d[i-1, j-1] + 1, // a substitution
)
// This single statement is all you need:
if(s[i-1]==t[j-2] && s[i-2]==t[j-1])
d[i,j] := minimum
(
d[i,j], //cost without swapping
d[i-2,j-2]+something //cost with swapping. probably something=1
);
关于c# - C#中支持两个相邻字母Transposition的Levenshtein编辑距离算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178043/
最近我不得不编写以下函数: mToL :: Maybe [a] -> [Maybe a] mToL Nothing = [] mToL (Just xs) = map Just xs 这就引出了一个问
我想将 Pandas Series 转换为转置 Dataframe,其中键/值的数量是动态的。然后,转置的 Dataframe 也必须具有动态的列数。 我成功使用了 to_frame() 和 to_t
我在将 key 中的字母转换为它们在行换位密码中的字母顺序时遇到了一些问题。 例如,如果我们将单词“fruit”作为键,它应该转换为以下数字序列:“6(f) 18(r ) 21(u) 9(i) 20(
我把“chunk transposition”放在引号里是因为我不知道这个技术术语应该是什么。只要知道该过程是否有一个技术术语就会非常有帮助。 Wikipedia article on edit di
我有以下代码: template using Arr = Array; template using Arr2 = Array; template Arr2 reshape (const Arr
我在 C++ 中实现了 Damerau–Levenshtein 距离,但它没有为输入(pantera,主动脉)提供正确的 o/p,正确的 o/p 是 4,但我的代码给出了 5...... int e
我是一名优秀的程序员,十分优秀!