- 让
TARGET
是一组我希望被说出的字符串。 - 让
SOURCE
是语音识别器返回的字符串集(即它听到的可能句子)。
我需要一种从TARGET
. 我阅读了Levenshtein distance和Damerau-Levenshtein distance,它基本上返回源字符串和目标字符串之间的距离,即将源字符串转换为目标字符串所需的更改次数。
但是,如何将此算法应用于一组目标字符串?
我想我会使用以下方法:
- 对于属于 的每个字符串
TARGET
,我计算与 中每个字符串的距离SOURCE
。通过这种方式,我们获得了一个m×n矩阵,其中 n 是 的基数,SOURCE
n 是 的基数TARGET
。我们可以说第 i 行表示语音识别器检测到的句子相对于第 i 个目标的相似度。 - 计算每一行上的值的平均值,可以得到第i个目标与语音识别器输出的平均距离。我们称之为,行索引
average_on_row(i)
在哪里。i
- 最后,对于每一行,我计算该行中所有值的标准差。对于每一行,我还执行所有标准差的总和。结果是一个列向量,其中每个元素(我们称之为
stadard_deviation_sum(i)
)引用一个字符串TARGET
。
与最短关联的字符串stadard_deviation_sum
可以是用户发音的句子。可以认为是我使用的正确方法吗?或者还有其他方法吗?显然,过高的值表明用户发音的句子很可能不属于TARGET
.