2 个版本
0.1.2 | 2024年7月3日 |
---|---|
0.1.1 | 2024年6月12日 |
0.1.0 |
|
在 #edit-distance 中排名 22
每月 36 次下载
17KB
146 代码行
Str Distance
str_edit_distance
是一个 Rust 库,用于计算各种字符串距离度量。这些度量通过计算将一个字符串转换为另一个字符串所需的最小单字符编辑次数来衡量两个序列之间的差异。
特性
- Levenshtein 距离:衡量将一个字符串转换为另一个字符串所需的最小单字符编辑次数(插入、删除、替换)。
- Damerau-Levenshtein 距离:通过也将两个相邻字符的置换视为单个编辑来扩展 Levenshtein 距离。
- Hamming 距离:衡量对应字符不同的位置数。注意:仅适用于长度相等的字符串。
- Jaro-Winkler 距离:衡量两个字符串之间的相似度,特别适用于像名字这样的短字符串。
- Dice 系数:根据双字母组(相邻字符对)来衡量两个字符串之间的相似度。
安装
将 str_edit_distance
添加到您的 Cargo.toml
[dependencies]
str_edit_distance = "0.1"
然后,运行 cargo build 以安装该软件包。
用法
Levenshtein
use str_edit_distance::levenshtein;
fn main() {
let distance = levenshtein("kitten", "sitting");
println!("The Levenshtein distance between 'kitten' and 'sitting' is: {}", distance);
}
Damerau-Levenshtein 距离
use str_edit_distance::damerau_levenshtein;
fn main() {
let distance = damerau_levenshtein("ca", "abc");
println!("The Damerau-Levenshtein distance between 'ca' and 'abc' is: {}", distance);
}
Hamming 距离
use str_edit_distance::hamming;
fn main() {
let distance = hamming("karolin", "kathrin");
println!("The Hamming distance between 'karolin' and 'kathrin' is: {}", distance);
}
Jaro-Winkler 距离
use str_edit_distance::jaro_winkler;
fn main() {
let distance = jaro_winkler("martha", "marhta");
println!("The Jaro-Winkler distance between 'martha' and 'marhta' is: {:.3}", distance);
}
Dice 系数
use str_edit_distance::dice_coefficient;
fn main() {
let similarity = dice_coefficient("night", "nacht");
println!("The Dice's Coefficient between 'night' and 'nacht' is: {:.3}", similarity);
}