Calculate levenshtein distance in Golang.
By go tool: go get github.com/agflow/levenshtein
This uses default calculator which has cost of 1 for additions, deletions and substitutions.
import github.com/agflow/levenshtein
levenshtein.Dist("aaa", "ab") // 2You can specify different weights to increment/deletion and substitutions.
levenshtein.New(1, 1).Dist("aaa", "ab") // 2
levenshtein.New(1, 2).Dist("aaa", "ab") // 3
levenshtein.New(1, 3).Dist("aaa", "ab") // 3
levenshtein.New(1, 4).Dist("aaa", "ab") // 3
levenshtein.New(2, 2).Dist("aaa", "ab") // 4
levenshtein.New(3, 2).Dist("aaa", "ab") // 5If you don't care difference more than some predefined value and strings are encoded in ascii, and also you want to compare same string to multiple different strings then there is one more performant interface you can utilize:
d := levenshtein.FromBytes([]byte("Mustafa"), 2)
d.Dist([]byte("Kemal")) // 2
d.Dist([]byte("Mustfa")) // 1
d = levenshtein.FromBytes("Mustafa", 6)
d.Dist([]byte("Kemal")) // 6
d.Dist([]byte("Mustfa")) // 1MIT © AgFlow
