[][src]Module spatium::edit_based::damerau_levenshtein

Ha Damearu Levenshtein implementation

Damerau-Levenshtein distance

The Damerau-Levenshtein distance distance is the minimum number of edit operations necessary for transforming one sequence into the other. The edit operations allowed are:

  1. deletion: ABC -> BC, AC, AB
  2. insertion: ABC -> ABCD, EABC, AEBC..
  3. substitution: ABC -> ABE, ADC, FBC..
  4. transposition: ABC -> ACB, BAC

Examples

use spatium::edit_based::damerau_levenshtein;

let alg = damerau_levenshtein::Default::default();
let x = [1, 2, 3];
let y = [1, 2, 4];
let distance = alg.distance(&x, &y).unwrap();
assert_eq!(distance, 1.0);

// On &str.
let x = "Hello-МИР";
let y = "Hello-ПИР";
let xc = x.chars().collect::<Vec<char>>();
let yc = y.chars().collect::<Vec<char>>();
let distance = alg.distance(&xc, &yc).unwrap();
assert_eq!(distance, 1.0);

// With normaliztion (normalized distance = distance / x.len())
let alg = damerau_levenshtein::Default::default().normalize_result(true);
let x = [1, 2, 3];
let y = [1, 2, 4];
let distance = alg.distance(&x, &y).unwrap();
assert_eq!(distance, 1.0 / 3.0);

References:

Some implementation

Re-exports

pub use damerau_levenshtein1::DamerauLevenshtein1;

Modules

damerau_levenshtein1

Dameraulevenshtein1 algorithm

Type Definitions

Default

Default algorithm