什么字符串距离算法最适合测量打字准确度?

adr*_*nmc 5 algorithm nlp jaro-winkler levenshtein-distance

我正在尝试编写一个函数来检测用户输入特定短语/句子/单词/单词的准确程度.我的目标是构建一个应用程序来训练用户对某些短语的打字准确性.

我最初的直觉是使用基本的levenshtein距离算法(主要是因为这是我认识的唯一算法).

但经过一番研究后,我发现Jaro-Winkler是一个稍微有趣的算法,因为它考虑了换位.

我甚至找到了一个链接,讨论了这些算法之间的差异:

Jaro-Winkler与Levenshtein距离的区别?

阅读完所有这些内容后,除了各自的维基百科帖子外,对于哪种算法最符合我的目标,我仍然有点无能为力.

das*_*ght 5

由于您正在对打字质量进行评分,并且您希望训练学生犯零错误,因此您应该使用 Levenshtein 距离,因为它的宽容度较低。

此外,与 Jaro-Winkler 结果相比,Levenshtein 分数更易于理解,也更易于以图形方式表示。您可以修改 Levenshtein 算法以分别报告插入、删除和错误类型,并向最终用户显示更正列表。另一方面,Jaro-Winkler 为您提供了一个很难向最终用户显示的分数,因为中间拼写错误的惩罚低于最后的惩罚。