编辑距离算法和语音算法之间的交叉

数据挖掘 nlp
2022-02-27 03:56:37

我的目标是找到一种编辑距离算法,该算法根据语音上下文对转换进行不同的惩罚。

以 Levenshtein 算法为例;无论字符上下文如何,它都会对相同的操作(例如字符替换)进行同样的惩罚。

但是,在我看来,所有替换/插入/删除都不是平等的。例如,在某些情况下,转换C->K应该.A->T

语音算法,例如Double Metaphone,可以在这里提供帮助。它同时映射kosmetik和映射cosmetic到相同的语音键,但它具有攻击性并丢弃信息。即使音标相同,这两个字符串之间也有明显的区别。

简单地使用 Metaphone 键并应用编辑距离算法对于我的目标来说是一个糟糕的选择。

这里有合适的方法吗?或者是手动修改编辑距离算法内部的最佳选择?

1个回答

编辑距离中的操作可以有不同的权重,您可以尝试手动设置。在 Python 中,您可以使用例如strsympyweighted-levenshtein包。

还有可学习的编辑距离算法,允许从数据中学习操作权重。我认为首先手动估计操作成本然后使用学习算法对其进行微调可能是一个好主意。不幸的是,我不知道有任何合理的实施。

还有一个基于可学习编辑距离的基于CRF 的分类器。根据训练数据,它估计一个字符串是另一个字符串的转录的概率。这种方法需要正面和负面的训练样本。