11 个版本
0.1.12 | 2024年6月10日 |
---|---|
0.1.11 |
|
0.1.9 | 2024年2月26日 |
#356 在 文本处理
每月 42 次下载
19KB
262 行
信息
用于训练 n-gram 语言模型的简单工具。灵感来源于 此课程。
用法
use n_gram::*;
fn main() {
// Initializing model
let config = Config::default();
let mut model = Model::new(config);
// Loading and tokenizing corpus
let corpus = tiny_corpus()
.iter()
.map(|t| sos(eos(tokenize(t.to_owned()))))
.collect::<Vec<_>>();
model.train(corpus);
// Now you are ready to generate something
let mut tokens = sos(tokenize("The quick".to_owned()));
let max = 10; // max number of generated tokens
model.generate(&mut tokens, max);
// Save model
model.save("model.json").unwrap();
// Reset model
model.reset();
// Load model back
model.load("model.json").unwrap();
}
示例
我在 Tiny Stories 数据集的 20000 个样本上训练了一个三元组模型。以下是生成的文本示例
- "__sos__ 从前有个妈妈、一个爸爸、一个姐姐和一个小女孩在下面喊道,“看妈妈!一个会说话的云!”小女孩打开手,猴子高兴地一天之内全吃光了。她太善良了,他说好并给他看别的东西。“我用这个戳了你。这是一场风暴。波浪又高又宽,它似乎在召唤她最终结束。他们都有一只了不起的夜莺。比利很高兴并兴奋。__eos__”
- "__sos__ 从前有个带篮子的光女孩。然后她把篮子送到洗衣机里。当所有的衣服都挂在晾衣绳上时,黛西和她的家人正在准备飞走它,它突然飞走了!狮子因为无礼而感到难过。他说,“我很高兴。记住原谅是很重要的。__eos__”
- "__sos__ 从前有一家人住在一个有很多石头在地上流淌的小溪里,它在阳光下闪闪发光。从那天起,他们总是和她在一起,和她一起学习,向妈妈挥手告别。公交车司机很高兴地飞走了。蒂米为他们感到自豪。__eos__”
安装
cargo add n_gram
如果您想保存和加载模型
cargo add n_gram --features=saveload
如果您想加载用于训练的小型语料库
cargo add n_gram --features=corpus
链接
依赖项
~0.6–1.4MB
~31K SLoC