starfuzz/similarity
A module providing similarity scoring algorithms.
Similarity scores are normalized between 0.0 (completely different) and 1.0 (identical).
Values
pub fn cosine(a: List(a), b: List(a)) -> Float
Computes Cosine similarity of token frequency vectors (bag-of-words model).
Returns a value between 0.0 and 1.0.
pub fn dice(a: List(a), b: List(a)) -> Float
Computes Sørensen-Dice similarity over token multisets.
Returns a value between 0.0 and 1.0.
pub fn jaccard(a: List(a), b: List(a)) -> Float
Computes Jaccard similarity index over token multisets.
Returns a value between 0.0 and 1.0.
pub fn jaro(a: String, b: String) -> Float
Computes the Jaro similarity score between two strings.
Returns a value between 0.0 and 1.0.
pub fn jaro_winkler(a: String, b: String) -> Float
Computes the Jaro-Winkler similarity score between two strings.
Winkler’s optimization adds a prefix boost (up to 4 characters) to Jaro’s score if the strings start with the exact same prefix.
pub fn levenshtein(a: String, b: String) -> Float
Computes normalized Levenshtein similarity.
Returns a value between 0.0 and 1.0.