1

我有各种长度的字符串,其中充满了 Base64 字符。实际上,它们是音频识别数据,因歌曲而异。

为了轻松比较这些字符串的各个部分,我将它们分成 16 个字符的子字符串。(大约是一首歌的 1 秒)但在某些情况下,我无法直接比较这些。我应该测量它们。

例如与 ' hellohellohelloo' 和 ' hallohellohelloo' 的比较应该得到更接近的值然后 ' hellohellohelloo' 和 ' herehellohelloo' 比较。

有没有算法或理论


编辑:对不起,我是新来的 :) 我无法说清楚。这里有一些评论会让我清楚并提出一个想法。

评论1:

实际上我知道 Levenshtein 距离,但问题是每次我比较两个字符串时,我都必须建立比较矩阵,这使得搜索过程变慢。例如,如果我可以将 hello 转换为 4444 并将 halo 转换为 4443,我可以通过索引数值来确定我对“hello”的记录有多接近。

评论 2:

也许我应该确定一个基本的恒定长度字符串并将它们的距离值存储为字符串的索引值。这只是一个想法?!

4

2 回答 2

0

Levenshtein 的距离可能会对您有所帮助:http ://en.wikipedia.org/wiki/Levenshtein_distance

它通常非常快,并且大多数现代语言也有实现。

于 2009-07-24T12:18:03.397 回答
0

Levenshtein 距离可能对您有用。另请参阅编辑距离的维基百科概述。

于 2009-07-24T12:19:06.797 回答