#string #text #utility

fuzzywuzzy

A pure-Rust clone of the incredibly useful fuzzy string matching python package, FuzzyWuzzy

2 releases

Uses old Rust 2015

0.0.2 Sep 24, 2020
0.0.1 Sep 24, 2020

#1349 in Text processing

Download history 89/week @ 2023-11-13 64/week @ 2023-11-20 70/week @ 2023-11-27 144/week @ 2023-12-04 222/week @ 2023-12-11 372/week @ 2023-12-18 227/week @ 2023-12-25 175/week @ 2024-01-01 139/week @ 2024-01-08 130/week @ 2024-01-15 162/week @ 2024-01-22 178/week @ 2024-01-29 198/week @ 2024-02-05 207/week @ 2024-02-12 310/week @ 2024-02-19 320/week @ 2024-02-26

1,061 downloads per month
Used in rgwml

GPL-2.0-only

26KB
516 lines

fuzzywuzzy-rs

Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.

Note: This project was originally named fuzzyrusty. Someone else cloned and published it to crates.io https://crates.io/crates/fuzzyrusty. We do not control that crate. This is why we have changed the name.

Installation

fuzzywuzzy is currently available through GitHub or crates.io.

For the latest stable releas, add this to your Cargo.toml:

[dependencies]
fuzzywuzzy = "*"

For the bleeding edge, you can pull directly from master:

[dependencies]
fuzzywuzzy = { git = "https://github.com/logannc/fuzzywuzzy-rs", branch = "master" }

Documentation

Clone the repository and run $ cargo doc --open.

Usage

Simple Ratio

assert_eq!(fuzz::ratio("this is a test", "this is a test!"), 97);

Partial Ratio

assert_eq!(fuzz::partial_ratio("this is a test", "this is a test!"), 100);

Token Sort Ratio

assert_eq!(fuzz::ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear"), 91);  
assert_eq!(fuzz::token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear", true, true), 100);

Token Set Ratio

assert_eq!(fuzz::ratio("fuzzy was a bear", "fuzzy fuzzy was a bear"), 84);  
assert_eq!(fuzz::token_set_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear", true, true), 100);

Process

assert_eq!(process::extract_one(  
  "cowboys",  
 &["Atlanta Falcons", "Dallas Cowboys", "New York Jets"],  
 &utils::full_process,  
 &fuzz::wratio,  
  0,  
), Some(("Dallas Cowboys".to_string(), 90)));

No runtime deps