1 个不稳定版本
0.1.0 | 2023年4月11日 |
---|
#1335 在 文本处理
91 每月下载量
25KB
596 行
🍜 诺德勒
在计算机科学中,“诺德勒”用于描述处理文本的程序。由于 n-gram 等算法通常用于从文本中提取信息,类似于从面团中拉出面条,因此“诺德勒”可以与从文本中提取信息的算法相关联,因为它们可以被视为文本的“处理”程序,就像面条制造商从面团中“生产”面条一样。
ChatGPT
基于 python-ngram 项目的移植,提供使用 N-gram 的模糊搜索。
✍️ 示例
use noodler::NGram;
let ngram = NGram::<&str>::builder()
.arity(2)
.warp(3.0)
.threshold(0.75)
.build()
// Feed with known words
.fill(vec!["pie", "animal", "tomato", "seven", "carbon"]);
// Try an unknown/misspelled word, and find a similar match
let word = "tomacco";
let top = ngram.search_sorted(word).next();
if let Some((text, similarity)) = top {
if similarity > 0.99 {
println!("✔ {}", text);
} else {
println!(
"❓{} (did you mean {}? [{:.0}% match])",
word,
text,
similarity * 100.0
);
}
} else {
println!("🗙 {}", word);
}
💭 启发于
请查看这些在 noodler 创建过程中有很大帮助的出色作品
- python-ngram:支持按 ngram 相似度搜索的集合。
- ngrammatic:一个提供使用 N-gram 进行模糊搜索/字符串匹配的 Rust crate。
🚩 最小支持的 Rust 版本
所有测试在 rustc v1.41
下通过,早期版本可能无法编译。
⚖️ 许可证
在以下任一许可证下授权:
- Apache License,版本 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择。