35 个版本 (6 个稳定版)

使用旧的 Rust 2015

1.1.0 2020年7月20日
1.0.3 2020年1月27日
1.0.2 2018年5月3日
1.0.1 2018年3月3日
0.0.8 2014年12月23日

#600文本处理

Download history • Rust 包仓库 66/week @ 2024-03-24 • Rust 包仓库 201/week @ 2024-03-31 • Rust 包仓库 55/week @ 2024-04-07 • Rust 包仓库 72/week @ 2024-04-14 • Rust 包仓库 80/week @ 2024-04-21 • Rust 包仓库 72/week @ 2024-04-28 • Rust 包仓库 64/week @ 2024-05-05 • Rust 包仓库 56/week @ 2024-05-12 • Rust 包仓库 82/week @ 2024-05-19 • Rust 包仓库 60/week @ 2024-05-26 • Rust 包仓库 69/week @ 2024-06-02 • Rust 包仓库 39/week @ 2024-06-09 • Rust 包仓库 89/week @ 2024-06-16 • Rust 包仓库 75/week @ 2024-06-23 • Rust 包仓库 200/week @ 2024-06-30 • Rust 包仓库 21/week @ 2024-07-07 • Rust 包仓库

每月 394 次下载
用于 5 个 Crates (4 个直接使用)

CC0 许可

26KB
461

markov 构建状态 Crates.io 文档 使用 Spacemacs 构建

Rust 中通用 马尔可夫链 实现。它支持实现 EqHashClone 的所有类型,并为处理 String 提供了一些特定助手,因为文本生成是最可能的使用场景。您可以在 docs.rs 上找到最新、可供使用的文档。

注意:`markov` 处于被动维护模式。对于其预期用途(主要是文本生成,尤其是在聊天机器人等场景中),它应该运行良好,但可能不会扩展到任何其他用途。如果它不能广泛满足您的需求,您可能需要将其分叉或开发一个更专门定制的库。尽管如此,仍然会对错误报告进行分类和修复。

示例

使用字符串

extern crate markov;

use markov::Chain;

fn main() {
    let mut chain = Chain::new();
    chain.feed_str("I like cats and I like dogs.");
    println!("{:?}", chain.generate_str());
}

使用整数

extern crate markov;

use markov::Chain;

fn main() {
    let mut chain = Chain::new();
    chain.feed(vec![1u8, 2, 3, 5]).feed([3u8, 9, 2]);
    println!("{:?}", chain.generate());
}

链有迭代器(无限和有界!)

extern crate markov;

use markov::Chain;

fn main() {
    let mut chain = Chain::new();
    chain.feed_str("I like cats and I like dogs.");
    for line in chain.iter_for(5) {
        println!("{:?}", line);
    }
}

链可以是高阶的

extern crate markov;

use markov::Chain;

fn main() {
    let mut chain = Chain::of_order(2);
    chain.feed_str("I like cats and I like dogs.");
    for line in chain.iter_for(5) {
        println!("{:?}", line);
    }
}

贡献

对这个库的贡献将受到极大的欢迎。应注意的是,由于这是一个公共领域项目,因此任何贡献都将同样释放到公共领域。

依赖项

~0.9–2.3MB
~45K SLoC