このデータを考えると (両方の言語からの相対的な文字頻度):
spanish => 'e' => 13.72, 'a' => 11.72, 'o' => 8.44, 's' => 7.20, 'n' => 6.83,
english => 'e' => 12.60, 't' => 9.37, 'a' => 8.34, 'o' => 7.70, 'n' => 6.80,
そして、文字列「これはテストです」の文字頻度を計算すると、次のようになります。
"t"=>21.43, "s"=>14.29, "i"=>7.14, "r"=>7.14, "y"=>7.14, "'"=>7.14, "h"=>7.14, "e"=>7.14, "l"=>7.14
では、指定された文字列文字の頻度を言語と一致させる (そして言語を検出しようとする) ための良いアプローチは何でしょうか? レーベンシュタイン距離を使用した例をいくつか見た (そしてテストした) が、言語を追加するまでは問題なく動作するようだ。
"this is a test" gives (shortest distance:) [:english, 13] ...
"esto es una prueba" gives (shortest distance:) [:spanish, 13] ...