Documentation
¶
Index ¶
- func DamerauLevenshteinDistance(str1, str2 string) int
- func HammingDistance(str1, str2 string) (int, error)
- func JaroSimilarity(str1, str2 string) float32
- func JaroWinklerSimilarity(str1, str2 string) float32
- func LCS(str1, str2 string) int
- func LCSBacktrack(str1, str2 string) (string, error)
- func LCSBacktrackAll(str1, str2 string) ([]string, error)
- func LCSDiff(str1, str2 string) ([]string, error)
- func LCSEditDistance(str1, str2 string) int
- func LevenshteinDistance(str1, str2 string) int
- func OSADamerauLevenshteinDistance(str1, str2 string) int
- func StringsSimilarity(str1 string, str2 string, algo AlgorithMethod) (float32, error)
- type AlgorithMethod
- type StringHashMap
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DamerauLevenshteinDistance ¶
DamerauLevenshteinDistance calculate the distance between two string This algorithm computes the true Damerau–Levenshtein distance with adjacent transpositions Allowing insertions, deletions, substitutions and transpositions to change one string to the second Compatible with non-ASCII characters
func HammingDistance ¶
HammingDistance calculate the edit distance between two given strings using only substitutions Return edit distance integer and an error
func JaroSimilarity ¶ added in v1.1.0
JaroSimilarity return a similarity index (between 0 and 1) It use Jaro distance algorithm and allow only transposition operation
func JaroWinklerSimilarity ¶ added in v1.1.0
JaroWinklerSimilarity return a similarity index (between 0 and 1) Use Jaro similarity and after look for a common prefix (length <= 4)
func LCSBacktrack ¶ added in v1.1.0
LCSBacktrack returns all choices taken during LCS process
func LCSBacktrackAll ¶ added in v1.1.0
LCSBacktrackAll returns an array containing all common substrings between str1 and str2
func LCSDiff ¶ added in v1.1.0
LCSDiff will backtrack through the lcs matrix and return the diff between the two sequences
func LCSEditDistance ¶
LCSEditDistance determines the edit distance between two strings using LCS function (allow only insert and delete operations)
func LevenshteinDistance ¶
LevenshteinDistance calculate the distance between two string This algorithm allow insertions, deletions and substitutions to change one string to the second Compatible with non-ASCII characters
func OSADamerauLevenshteinDistance ¶
OSADamerauLevenshteinDistance calculate the distance between two string Optimal string alignment distance variant that use extension of the Wagner-Fisher dynamic programming algorithm Doesn't allow multiple transformations on a same substring Allowing insertions, deletions, substitutions and transpositions to change one string to the second Compatible with non-ASCII characters
func StringsSimilarity ¶ added in v1.1.0
func StringsSimilarity(str1 string, str2 string, algo AlgorithMethod) (float32, error)
StringsSimilarity return a similarity index [0..1] between two strings based on given edit distance algorithm in parameter. Use defined AlgorithmMethod type.
Types ¶
type AlgorithMethod ¶ added in v1.1.0
type AlgorithMethod uint8
AlgorithMethod is an Integer type used to identify edit distance algorithms
const ( Levenshtein AlgorithMethod = iota DamerauLevenshtein AlgorithMethod = iota OSADamerauLevenshtein AlgorithMethod = iota Lcs AlgorithMethod = iota Hamming AlgorithMethod = iota Jaro AlgorithMethod = iota JaroWinkler AlgorithMethod = iota )
type StringHashMap ¶ added in v1.1.0
type StringHashMap map[string]struct{}
StringHashMap is HashMap substitue for string