2个版本

0.1.1 2019年5月8日
0.1.0 2019年5月7日

#17 in #eq


用于gmarkov

MIT许可证

9KB
127

gmarkov-lib

pipeline

此库提供了MarkovChain数据结构。马尔可夫链通过许多有限序列的项目进行喂养,并输出一个序列来尝试模仿训练数据。在我的实现中,输入必须是一个迭代器,其中项是Eq + Hash + Clone(或其别名ChainItem)。

此库通常用于char的序列,但可以用于几乎任何数据类型,如数字或枚举。

更多信息请参阅文档:https://docs.rs/gmarkov-lib


lib.rs:

一个提供马尔可夫链数据结构的库。

MarkovChain结构允许您输入几个项目的序列,并输出一个看起来非常相似,但实际上是随机生成的序列。

这是我的命令行应用程序gmarkov的库。

示例

extern crate gmarkov_lib;

use std::fs::File;
use std::io::{Result, BufRead, BufReader};
use gmarkov_lib::MarkovChain;

fn main() -> Result<()> {
    let mut chain = MarkovChain::with_order::<char>(2);

    let reader = BufReader::new(File::open("examples/dictionary_sample.txt")?);
    for line in reader.lines() {
        chain.feed(line?.chars());
    }

    println!("New word: {}", chain.into_iter().collect::<String>());

    Ok(())
}

上面的简短程序将创建一个2阶马尔可夫链,然后将其喂以来自词典(在examples/dictionary_sample.txt)的100个随机单词,然后打印出一个新的随机单词。

依赖关系

~560–780KB
~10K SLoC