我有各种长度字符串,其中充满了Base64字符。实际上,他们的音频识别数据因歌曲而异。
为了轻松比较这些字符串的部分,我将它们分成16个字符串子字符串。 (这是一首歌的大约1秒)但在某些情况下,我只能无法比较这些,我应该测量它们。
例如,与“hellohellohelloo
”和“hallohellohelloo
”进行比较时,应该获得更接近的值,然后进行“hellohellohelloo
”和“herehellohelloo
”比较。
是否有任何算法或理论
编辑:抱歉,我是新来的:)我无法说清楚。这里有一些评论会让我明白并提出一个想法。
评论1:
实际上我知道Levenshtein距离,但问题是我每次比较两个字符串,我必须建立比较矩阵,这使得搜索过程变慢。如果我可以将例如hello转换为4444并将hallo转换为4443,我可以通过索引数值来确定我对'hello'的记录有多接近。
评论2:
也许我应该确定一个基本的常量长度字符串,并将它们的距离值存储为字符串的索引值。这只是一个想法?!
答案 0 :(得分:0)
Levenshtein的距离可能会帮助你:http://en.wikipedia.org/wiki/Levenshtein_distance
它通常非常快,并且在大多数现代语言中都有实现。
答案 1 :(得分:0)
Levenshtein distance可能适合您。另请参阅维基百科对edit distance的概述。