之前介紹過文章相似度比對,今天要來介紹一個舉凡是兩個字串(string)都可以拿來算相似度的方法,且運算速度還比較快。 Levenshtein distance(萊文斯坦距離),其核心概念很簡單就是A字串要變的跟B字串一模一樣需要增加、刪除幾個字元,若增修的字元越少表示兩個字串越相似。 舉例:1234變成123編輯距離就是1。 相關的source code網路上資源有很多,隨意貼一個C#版本。 public static int LevenshteinDistance(string s, string t) { int n = s.Length; int m = t.Length; int[,] d = new int[n + 1, m + 1]; if (n == 0) { return m; } if (m == 0) { return n; } for (int i = 0; i <= n; d[i, 0] = i++) { } for (int j = 0; j <= m; d[0, j] = j++) { ...
留言
張貼留言