#nlp #频率 #端口 #单词 #上升 #语言 #查找

wordfreq

又是Rust语言对wordfreq的另一种移植,用于查找多种语言中单词的频率。

6个版本

0.2.3 2023年6月24日
0.2.2 2023年6月24日
0.1.1 2023年6月4日

#1139 in 文本处理


用于 2 crates

MIT/Apache

350KB
13K SLoC

wordfreq

这个crate是Python的wordfreq的另一种Rust移植,允许您查找多种语言中单词的频率。

文档

https://docs.rs/wordfreq/

许可

源代码受以下任一许可协议保护:

任选其一。


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