6个版本
0.2.3 | 2023年6月24日 |
---|---|
0.2.2 | 2023年6月24日 |
0.1.1 | 2023年6月4日 |
#1139 in 文本处理
用于 2 crates
350KB
13K SLoC
wordfreq
这个crate是Python的wordfreq的另一种Rust移植,允许您查找多种语言中单词的频率。
文档
许可
源代码受以下任一许可协议保护:
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
lib.rs
:
wordfreq
这个crate是Python的wordfreq的Rust移植,允许您查找多种语言中单词的频率。
注意:**这个crate只提供算法(包括硬编码的标准化)和模型**。 使用wordfreq-model轻松加载分布式模型。我们建议查看文档以快速入门。
如何在不使用wordfreq-model的情况下创建实例
如果您不希望使用wordfreq-model自动下载模型,您可以直接从这里放置的实际模型文件创建实例。模型文件描述了单词及其在文本格式中的频率。
<word1> <freq1>
<word2> <freq2>
<word3> <freq3>
...
您可以按以下方式创建实例
use approx::assert_relative_eq;
use wordfreq::WordFreq;
let word_weight_text = "las 10\nvegas 30\n";
let word_weights = wordfreq::word_weights_from_text(word_weight_text.as_bytes())?;
let wf = WordFreq::new(word_weights);
assert_relative_eq!(wf.word_frequency("las"), 0.25);
assert_relative_eq!(wf.word_frequency("vegas"), 0.75);
assert_relative_eq!(wf.word_frequency("Las"), 0.00);
标准化
如果您想在查找单词频率之前标准化单词,请设置一个Standardizer
实例。
use approx::assert_relative_eq;
use wordfreq::WordFreq;
use wordfreq::Standardizer;
let word_weight_text = "las 10\nvegas 30\n";
let word_weights = wordfreq::word_weights_from_text(word_weight_text.as_bytes())?;
let standardizer = Standardizer::new("en")?;
let wf = WordFreq::new(word_weights).standardizer(standardizer);
assert_relative_eq!(wf.word_frequency("Las"), 0.25); // Standardized
精度误差
尽管算法相同,但由于浮点精度,结果可能与原始实现略有不同。
未提供的功能
虽然这个crate是Python的wordfreq的直接移植,但某些功能未提供
依赖关系
~7MB
~143K SLoC