#edit-distance #levenshtein #string #similarity #metrics #calculating #hamming

已删除 str_edit_distance

Rust 库,用于计算各种字符串距离和相似性度量

2 个版本

0.1.2 2024年7月3日
0.1.1 2024年6月12日
0.1.0 2024年5月19日

#edit-distance 中排名 22

每月 36 次下载

GPL-3.0 许可证

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);
}

无运行时依赖项