今日は、月1回の『研究開発の日』 システムを音声操作すべく、思考錯誤を重ねています。 以前ブログに書いた「 表記ゆれ 」対策の「編集距離」について調べた内容を残しておこうと思います。 例えば、ネーブル、ポンカン、シーク ァ ーサーの中から、シーク ワ ーサーを選択させるにはコンピューターにはどんな指示をだしたら良いでしょうか? 完全に一致せずとも、類似したものを見つけ出すには、編集距離(レーベンシュタイン距離)という考え方を使います。 編集距離とは、<キーワードA>を<キーワードB>に変換するのに必要な手数(距離)を数値化したものです。 この距離が小さいほど、類似していると判断できます。 早速、それぞれの編集距離についてみてみましょう。 ---------------------------------------------------------------------------- ネーブル → シークワーサー 距離:9 ポンカン → シークワーサー 距離:9 シーク ァ ーサー → シーク ワ ーサー 距離:1 ---------------------------------------------------------------------------- <シークァーサー>を、<シークワーサー>に変換するには1回編集するだけで良いので、ネーブル、ポンカン、シークァーサーの中では、シークァーサーが類似しているということになります。 レーベンシュタイン距離は、下記表を作成して、距離を割り出しています。 s i - k u w a - s a - s 0 1 2 3 4 5 6 7 8 9 10 11 i 1 0 1 2 3 4 5 6 7 8 9 10 - 2 1 0 1 2 3 4 5 6 7 8 9 k 3 2 1 0 1 2 3 4 5 6 7 8 w 4 3 2 1 0 1 2 3 4 5 6 7 a 5 4 3 2 1 1 1 2 3 4 5 6 - 6 5 4 3 2 2 2 1 2 3 4 5 s 7 6 5 4 3 3 3 2 1 2 3 4 a 8 7 6 5 4 4 4 3 2 1 2 3 - 9 8 7 6 5 5 5 4 3 2 1 2 10 9 8 7 ...