2009-07-24 13 views
1

私はBase64の文字でいっぱいのさまざまな長さの文字列を持っています。実際には、音声認識データは曲ごとに異なります。数値に変換する文字列マッチング技術?

これらの文字列の一部を簡単に比較するために、それらを16文字のサブ文字列に分割します。 (曲の約1秒ですが)しかし、場合によっては、これらのものと頭を比較することはできません。私はそれらを測定する必要があります。

は「hellohellohelloo」と「hallohellohelloo」と例の比較のために、その後「hellohellohelloo」と「herehellohelloo」比較近い値を取得する必要があります。申し訳ありませんが、私はここに新しいです:)、私は自分自身を明確にすることができませんでした:

は、任意のアルゴリズムまたはtheorical


編集あります。ここに私を明確にし、アイデアを提案するいくつかのコメントがあります。

コメント1:

実際に私は、レーベンシュタイン距離について知っているが、問題は私が比較マトリックスを構築する必要が2つの文字列を比較すると、それは検索処理が遅くなり、すべての時間です。たとえばhelloを4444に変換し、halloを4443に変換できるのであれば、数値をインデックスに登録するだけでレコードがどれくらい近いかを判断できます。

コメント2:

多分私は、文字列のインデックス値としてそれらからベース一定長の文字列(S)及び店舗距離値を決定すべきです。それは単なるアイデアですか?

+0

「音声認識データ」には実際に読み取り可能なテキストが含まれていますか? –

+0

私が尋ねるのは、 "テキスト"への変換がとても良いので、単語やそれに類するものを選ぶことができれば、単純なlevenshtein-distanceの実装、または類似したものが動作するということです。異なるサンプルポイントを生成する、波形のように位相が少しずれているような変換の問題で文字列全体が異なる場合、levenshteinは役に立たないでしょう。オーディオから実際のデータを投稿できますか? –

+0

いいえ、テキストではありません。これは、base64の文字だけで充分です。 –

答えて

0

レーベンシュタインの距離は、おそらくあなたを助ける:http://en.wikipedia.org/wiki/Levenshtein_distance

それは通常、非常に高速だし、最も近代的な言語での実装があまりにもあります。

+0

実際に私はLevenshteinの距離について知っていますが、問題は2つの文字列を比較するたびに比較行列を作成しなければならず、処理が遅くなります。たとえばhelloを4444に変換し、halloを4443に変換できるのであれば、数値をインデックスに登録するだけでレコードがどれくらい近いかを判断できます。私は今私は少しはっきりしていると思う。 :) –

+0

多分、私は基本的な定数の長さの文字列を決定し、文字列のインデックス値として距離値を格納する必要があります。それは単なるアイデアですか? –

+0

私はその分野の専門家ではありませんが、Levenshteinに似ている他の寓意があり、あなたが探しているものに近いかもしれません。 あなたの問題に対する解決策は、2つのalgorythmsの組み合わせになる可能性があります... Levenshtein'sで作業して、char-by-char距離の分析を追加するのはなぜですか(このメソッドには名前がありますが、今すぐ><)。 H = 0 E - - A = 4(B、C、D、E) L - L = 0 L - L = 0 H: "こんにちは" のようなものを与える "hally" VS:例えば o - y = 10(p、q、r、s、t、u、v、w、x、y) どういう意味ですか? – Nicolas

関連する問題