2个稳定版本
1.0.1 | 2021年5月18日 |
---|
#982 在 数据结构
39 每月下载量
用于 bustools_cli
10KB
204 行
bktree
一个实现Brukhard Keller树数据结构的crate,它允许快速查询离散距离上的“接近”匹配。
适用于基于编辑距离的拼写检查和其他典型应用。
use bktree::*;
let mut bk = BkTree::new(hamming_distance);
bk.insert_all(vec![0, 4, 5, 14, 15]);
let (words, dists): (Vec<i32>, Vec<isize>) = bk.find(13, 1).into_iter().unzip();
assert_eq!(words, [5, 15]);
assert_eq!(dists, [1, 1]);
use bktree::*;
let mut bk = BkTree::new(levenshtein_distance);
bk.insert_all(vec![
"book", "books", "boo", "boon", "cook", "cake", "cape", "cart",
]);
let (words, dists): (Vec<&str>, Vec<isize>) = bk.find("bo", 2).into_iter().unzip();
assert_eq!(words, ["book", "boo", "boon"]);
assert_eq!(dists, [2, 1, 2]);
lib.rs
:
一个实现Brukhard Keller树数据结构的crate,它允许快速查询离散距离上的“接近”匹配。
use bktree::*;
let mut bk = BkTree::new(hamming_distance);
bk.insert_all(vec![0, 4, 5, 14, 15]);
let (words, dists): (Vec<i32>, Vec<isize>) = bk.find(13, 1).into_iter().unzip();
assert_eq!(words, [5, 15]);
assert_eq!(dists, [1, 1]);
use bktree::*;
let mut bk = BkTree::new(levenshtein_distance);
bk.insert_all(vec![
"book", "books", "boo", "boon", "cook", "cake", "cape", "cart",
]);
let (words, dists): (Vec<&str>, Vec<isize>) = bk.find("bo", 2).into_iter().unzip();
assert_eq!(words, ["book", "boo", "boon"]);
assert_eq!(dists, [2, 1, 2]);
依赖项
~465KB