TARGET
私が話されると予想される文字列のセットとしましょう。- を、音声認識エンジンによって返さ
SOURCE
れる文字列のセット (つまり、認識された可能性のある文) とします。
から文字列を選択する方法が必要TARGET
です。レーベンシュタイン距離とダメラウ・レーベンシュタイン距離について読みました。これは基本的にソース文字列とターゲット文字列の間の距離を返します。これは、ソース文字列をターゲット文字列に変換するために必要な変更の数です。
しかし、このアルゴリズムを一連のターゲット文字列に適用するにはどうすればよいでしょうか?
私は次の方法を使用すると思いました:
- に属する文字列ごとに
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
。