#trie #radix #matching #compression #rules #supporting #radix-trie

ab-radix-trie

支持匹配规则的压缩基数前缀树实现

3个不稳定版本

0.2.1 2024年3月27日
0.2.0 2023年12月26日
0.1.0 2023年12月25日

文本处理 类别中排名 #686

自定义许可

36KB
683 行(不包括注释)

Latest Version

基数-Trie

基数前缀树实现,即压缩前缀树

https://en.wikipedia.org/wiki/Radix_tree

一些优秀特性

  1. 压缩节点
  2. 模糊匹配 - 匹配空格、替换字符等
  3. 支持所有 Unicode 字符
  4. 可以任意将值关联到文本(即将字符串映射到值)
  5. 支持与 serde 序列化

性能

大约

  1. 插入 O(树深度)
  2. 检索 O(树深度)
  3. 删除 O(树深度)
  4. 空间 - 我不知道确切数值,但它将根据 ~O(文本熵) 行为 - 相似文本将一起压缩 - 例如,“ABC”,“ABCD”将占用 O(“ABCD”) 空间,分为“ABC”和“D”

用法

建议查看示例和测试以获取一些模式

基本用法大致如下

let mut trie: Trie<i32> = Trie::new();
trie.insert("romanus", None);
trie.insert("romulus", Some(10));
trie.insert("rubens", None);
trie.insert("ruber", None);
trie.insert("rubicon", None);
trie.insert("rubicundus", None);

依赖项

~4–6MB
~107K SLoC