[−][src]Module eddie::slice
Distance/similarity metric implementations for generic slices &[T]
.
Implementations in this module are significantly faster than those from eddie::str
,
but will produce incorrect results for UTF-8 and other variable width character encodings.
Basic Usage
Levenshtein:
use eddie::slice::Levenshtein; let lev = Levenshtein::new(); let dist = lev.distance(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]); assert_eq!(dist, 2);
Damerau-Levenshtein:
use eddie::slice::DamerauLevenshtein; let damlev = DamerauLevenshtein::new(); let dist = damlev.distance(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]); assert_eq!(dist, 1);
Hamming:
use eddie::slice::Hamming; let hamming = Hamming::new(); let dist = hamming.distance(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]); assert_eq!(dist, Some(2));
Jaro:
use eddie::slice::Jaro; let jaro = Jaro::new(); let sim = jaro.similarity(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]); dbg!(sim); assert!((sim - 0.93).abs() < 0.01);
Jaro-Winkler:
use eddie::slice::JaroWinkler; let jarwin = JaroWinkler::new(); let sim = jarwin.similarity(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]); dbg!(sim); assert!((sim - 0.93).abs() < 0.01);
Structs
DamerauLevenshtein | Damerau-Levenshtein distance. |
Hamming | Hamming distance. |
Jaro | Jaro similarity. |
JaroWinkler | Jaro-Winkler similarity. |
Levenshtein | Levenshtein distance. |