3个不稳定版本
0.2.0 | 2019年12月24日 |
---|---|
0.1.1 | 2019年12月17日 |
0.1.0 | 2019年12月15日 |
2565 in 算法
10KB
108 行
README
Levenshtein距离的通用和快速实现。
通用
此crate可以处理任何类型的切片。因此,它可以
- 计算两个字符串之间的字符距离
assert_eq!(distance ("abc", "aaxcc"), 3);
- 计算两个字符串之间的单词距离
assert_eq!(
distance (
"The quick brown fox".split (' ').collect::<Vec<_>>(),
"The very quick brown cat".split (' ').collect()),
2);
- 或者甚至计算任何两个序列之间的距离
assert_eq!(distance (vec![1, 2, 3], vec![0, 1, 3, 3, 4]), 3);
快速
在撰写本文时,此crate是crates.io上处理文本最快的一个(与eddie
相当)
相同长度 | 相同长度 | 不同长度 | |
---|---|---|---|
generic_levenshtein | 3 | 9_616 | 11_010 |
levenshtein v1.0.4 | 4 | 11_030 | 12_777 |
strsim v0.9.2 | 9_173 | 10_100 | 11_738 |
distance v0.4.0 | 23_594 | 13_800 | 26_890 |
eddie v0.3.2 | 215 | 7_464 | 11_968 |
txtdist v0.2.1 | 17_732 | 17_635 | 20_975 |
所有时间均为ns
,在一个Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz
上。