[−][src]Struct eddie::DamerauLevenshtein
Damerau-Levenshtein distance.
Usage
use eddie::DamerauLevenshtein; let damlev = DamerauLevenshtein::new(); let dist = damlev.distance("martha", "marhta"); assert_eq!(dist, 1);
Complementary metrics
Relative distance:
let dist = damlev.distance(s1, s2); let rel = damlev.rel_dist(s1, s2); let max_len = max(s1.len(), s2.len()); assert_eq!(rel, dist as f64 / max_len as f64);
Similarity:
let rel = damlev.rel_dist(s1, s2); let sim = damlev.similarity(s1, s2); assert_eq!(sim, 1.0 - rel);
Methods
impl DamerauLevenshtein
[src]
pub fn new() -> Self
[src]
Creates a new instance of DamerauLevenshtein struct with an internal state for the metric methods to reuse.
Example
use eddie::DamerauLevenshtein; let damlev = DamerauLevenshtein::new();
pub fn distance(&self, str1: &str, str2: &str) -> usize
[src]
Distance metric. Returns a number of edits (character additions, deletions, substitutions, and transpositions) required to transform one string into the other.
Example
let dist = damlev.distance("martha", "marhta"); assert_eq!(dist, 1);
pub fn rel_dist(&self, str1: &str, str2: &str) -> f64
[src]
Relative distance metric. Returns a number of edits relative to the length of the longest string, ranging from 0.0 (equality) to 1.0 (nothing in common).
Example
let dist = damlev.rel_dist("martha", "marhta"); assert!((dist - 0.167).abs() < 0.001);
pub fn similarity(&self, str1: &str, str2: &str) -> f64
[src]
Similarity metric. Inversion of relative distance, ranging from 1.0 (equality) to 0.0 (nothing in common).
Example
let sim = damlev.similarity("martha", "marhta"); assert!((sim - 0.833).abs() < 0.001);
Auto Trait Implementations
impl !RefUnwindSafe for DamerauLevenshtein
impl Send for DamerauLevenshtein
impl !Sync for DamerauLevenshtein
impl Unpin for DamerauLevenshtein
impl UnwindSafe for DamerauLevenshtein
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,