我想清理我的音乐库,将注意力集中在系统上双打最多的歌曲上。我可以将它们全部列出,排序并手动完成,但这会花费太长时间。我希望列表对最可能的重复项进行排序。因此,如果一首歌曲有 10 个重复,则意味着有 10 个歌曲名称彼此相似,因此我会首先将注意力集中在这首歌上,以保留最佳版本。
我可以使用 levenshtein 字符串比较技术和 gem 来比较两个歌曲名
require 'levenshtein'
Levenshtein.distance("string1", "string2") => 1
但是假设我有 x 首歌曲,我必须将每首歌曲比较 x 次,因为我不能依赖正常的文件排序,然后我会错过一些重复的歌曲。例如
The Beatles - Hey Jude
Beatles, The - hey jude
Beatles_-_Hey_Judy_(remastered)
应该给披头士乐队 - 嘿朱迪(x3)
有没有办法根据文件名生成索引,然后可以排序并按降序给出所有重复项?一种可以比较的哈希?
我知道其他音乐比较方法,但它们有缺陷,这也可以用于比较其他类型的文件。