我的目标是找到一种编辑距离算法,该算法根据语音上下文对转换进行不同的惩罚。
以 Levenshtein 算法为例;无论字符上下文如何,它都会对相同的操作(例如字符替换)进行同样的惩罚。
但是,在我看来,所有替换/插入/删除都不是平等的。例如,在某些情况下,转换不C->K应该像.A->T
语音算法,例如Double Metaphone,可以在这里提供帮助。它同时映射kosmetik和映射cosmetic到相同的语音键,但它具有攻击性并丢弃信息。即使音标相同,这两个字符串之间也有明显的区别。
简单地使用 Metaphone 键并应用编辑距离算法对于我的目标来说是一个糟糕的选择。
这里有合适的方法吗?或者是手动修改编辑距离算法内部的最佳选择?