2个版本
0.1.2 | 2023年5月31日 |
---|---|
0.1.1 | 2023年5月31日 |
0.1.0 |
|
#1626 在 Rust模式
每月28次下载
17KB
197 行
fuzzy_match_flex
Fuzzy Match 是一个基于流行的Python库 FuzzyWuzzy 的模糊匹配库。它包含4个基本模糊匹配函数。还包括四个宏,负责清理字符串。
匹配示例
替换常量设置为 $2$。
方法 | String_1 | String_2 | 结果 |
---|---|---|---|
比率 |
这是一个字符串 |
那是一个字符串 |
$0.875$ |
部分比率 |
Robert builds robots |
roboty |
$0.833$ |
用法
用法示例
let str1 = "Hello";
let str2 = "Hallo";
let similiarity = fuzzy_match_flex::ratio(str1, str2, None);
assert_eq!(similiarity, 0.8);
fuzzy_match_flex::ratio
使用levenshtein距离计算两个字符串的相似度。第三个参数告诉函数字符串是否已被清理。设置为 Some(false)
如果它们已被清理,设置为 Some(true)
或 None
如果需要清理。
let str1 = "Do we buy the airplane?";
let str2 = "Airplane";
let similiarity = fuzzy_match_flex::partial_ratio(str1, str2, None);
assert_eq!(similiarity, 1.0);
fuzzy_match_flex::partial_ratio
将最长的字符串分割成标记,并使用levenshtein距离计算标记与较短的字符串的相似度。
let str1 = "My mom bought me ice cream";
let str2 = "The ice cream was bought by my mom";
let similiarity = fuzzy_match_flex::token_sort_ratio(str1, str2, None);
assert_eq!(similiarity, 0.8666667);
fuzzy_match_flex::token_sort_ratio
将两个字符串都分割成标记,排序,并计算排序单词之间的相似度。
let str1 = "There are a lot of differences between Rust and C++";
let str2 = "differences in Rust C++";
let similiarity = fuzzy_match_flex::token_set_ratio(str1, str2, None);
assert_eq!(similiarity, 0.9230769);
fuzzy_match_flex::token_set_ratio
找到两个字符串的交集,并计算字符串的相似度。
文档
使用命令 cargo doc --open
可获得文档。
依赖关系
约2.2-3MB
约53K SLoC