Skip to content

levenshtein_similarity

Normalized levenshtein_distance between a and b, in [0, 1].

1 means identical, 0 means completely dissimilar relative to the longer string’s length. A convenience wrapper for scoring or ranking use cases.

use helpers4::string::levenshtein_similarity;

Cargo feature string (enabled by default). To compile only this module:

cargo add helpers4 --no-default-features --features string

or in Cargo.toml:

[dependencies]
helpers4 = { version = "0.0.7", default-features = false, features = ["string"] }
pub fn levenshtein_similarity(a: &str, b: &str, case_sensitive: bool) -> f64
ParameterTypeDescription
a&strThe first string.
b&strThe second string.
case_sensitiveboolWhether the comparison is case-sensitive.

f64 — A similarity score between 0 and 1; 1 when both strings are empty.

use helpers4::string::levenshtein_similarity;

assert_eq!(levenshtein_similarity("same", "same", true), 1.0);
assert!((levenshtein_similarity("kitten", "sitting", true) - 0.571_428_6).abs() < 1e-6);

src/string/levenshtein_similarity.rs