#模糊匹配 #模糊字符串 #字符串匹配 #文本处理 #Python #匹配 #流行

fuzzy_match_flex

基于流行的Python库FuzzyWuzzy的模糊匹配库

2个版本

0.1.2 2023年5月31日
0.1.1 2023年5月31日
0.1.0 2023年5月31日

#1626Rust模式

每月28次下载

MIT许可证

17KB
197

fuzzy_match_flex Crates.io GitHub

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