至於比較名稱而言,你可能想看看Levenshtein distance算法。給定兩個字符串,它會計算一個距離度量,可以用作捕獲重複數據的基礎。
我個人的工具,我與該有大量重複它的一個相當大的數據庫的應用程序開發中使用它。結合與我的域相關的一些其他數據比較,我可以將我的工具指向應用程序數據庫,並快速找到許多重複的記錄。不會說謊,我認爲在行動中看到這很酷。
它甚至快速實施,這裏有一個C# version:
public int CalculateDistance(string s, string t) {
int n = s.Length; //length of s
int m = t.Length; //length of t
int[,] d = new int[n + 1, m + 1]; // matrix
int cost; // cost
// Step 1
if (n == 0) return m;
if (m == 0) return n;
// Step 2
for (int i = 0; i <= n; d[i, 0] = i++) ;
for (int j = 0; j <= m; d[0, j] = j++) ;
// Step 3
for (int i = 1; i <= n; i++) {
//Step 4
for (int j = 1; j <= m; j++) {
// Step 5
cost = (t.Substring(j - 1, 1) == s.Substring(i - 1, 1) ? 0 : 1);
// Step 6
d[i, j] = System.Math.Min(System.Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1), d[i - 1, j - 1] + cost);
}
}
// Step 7
return d[n, m];
}
如果您要編寫一個工具來查看實際的音頻數據:如果您的音樂收藏不是非常小,檢查突然結局(損壞的文件或只是缺少末端的缺陷很難手動查找)當你注意到一首歌曲結束時,如果你正在聽音樂時做其他事情,那麼這是不太可能的) – ThiefMaster 2010-05-12 14:15:45