与字母混淆矩阵匹配的近似字符串?

时间:2010-04-23 22:26:35

标签: grep string-matching agrep

我正在尝试建立一个语音识别器的模型,该语音识别器必须隔离每个单词之间没有间隙的长电话流中的单词(电话串)的实例。电话流可能很难识别,有字母替换/插入/删除,所以我将不得不进行近似的字符串匹配。

但是,我希望匹配能够以语音为动力,例如“m”和“n”在语音上相似,因此与“m”和“k”相比,“m”对“n”的替换成本应该很小。所以,如果我正在搜索[mein]“main”,它会匹配字母序列[meim]“maim”,比如成本0.1,而它会匹配字母序列[meik]“make”,比如说,成本0.7。同样,插入或删除每个字母的成本也不同。我可以提供一个混淆矩阵,对于每个字母对(x,y),给出用x代替x的成本,其中x和y是任何字母或空字符串。

我知道有些工具可以进行近似匹配,例如agrep,但据我所知,它们不会将混淆矩阵作为输入。也就是说,任何插入/替换/删除= 1的成本。我的问题是,是否有任何已经可用的开源工具可以与混淆矩阵进行近似匹配,如果没有,那么是什么我可以实现一个很好的算法来实现这个目标吗?

编辑:为了清楚起见,我试图从较长的字符串中隔离诸如[mein]之类的单词的近似实例,例如[aiammeinlimeiking ...]。理想情况下,算法/工具应报告实例,例如[mein],成本为0.0(完全匹配),[meik]为成本0.7(接近匹配)等,对于所有近似字符串匹配,成本低于给定阈值。

2 个答案:

答案 0 :(得分:0)

我不知道任何使用混淆矩阵的语音识别器。我知道Soundexmatch rating

我认为K-nearest neighbour algorithm可能对您感兴趣的近似类型有用。

答案 1 :(得分:0)

Peter Kleiweg的Rug/L04(用于计算方言学)包括Levenshtein距离的实现,允许您指定非均匀的插入,删除和替换成本。

相关问题