具有自定义字符映射的Levenstein算法
本文关键字:Levenstein 算法 映射 字符 自定义 | 更新日期: 2023-09-27 18:28:43
我想使用Levenstein算法在字符串列表中进行搜索。我想实现一个自定义的字符映射,以便键入拉丁字符并用希腊语搜索项目。
映射示例:
a = α, ά
b = β
i = ι,ί,ΐ,ϊ
... (etc)
u = ου, ού
因此,使用在列表中使用abu
进行搜索
- αbu
- ab
- ας(所有希腊字符)
将与列表中的所有项目一起生成。(订单不是问题)
如何在算法中应用映射?(这是我开始的地方)
我认为最好的方法是将符号预处理为一种确定的形式(例如,全部为拉丁形式),然后像正常情况一样使用Levenstein。
在伪代码中:
int func(String latinStr, String greekStr) {
String mappedStr = convertToLatin(greekStr); // e.g. now αβ would be ab
return Levenstein(latinStr, mappedStr);
}
在convertToLatin
中,您可以逐个符号地询问Dictionary,其中包含替换和构造新字符串