3个版本
0.1.2 | 2021年12月13日 |
---|---|
0.1.1 | 2021年11月11日 |
0.1.0 | 2021年11月10日 |
#1880 in 算法
70KB
134 行
markov_rs
Rust中简单快速的马尔可夫链生成器。
通过使用Walker的别名方法(WAM),一种加权随机抽样算法,该模型可以快速生成元素。关于WAM的详细信息,请参阅ichi-h / weighted_rand。
基准测试
此crate和马尔可夫链使用累积分布函数(CDF)的基准测试如下。
环境
- OS: Windows 11 Home Insider Preview
- CPU: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
- RAM: 16.0 GB
- Rust版本: rustc 1.56.1
- 源代码: benchmark.rs
创建马尔可夫链模型
从100、500和1000个词的虚拟文本创建马尔可夫链模型所需的时间。
对于这两个模型,随着文本中单词数量的增加,生成时间也会增加,但WAM的时间斜率更大。
生成元素
从上述模型生成10个元素所需的时间。
随着文本中单词数量的增加,CDF生成元素的速度较慢,但WAM仍然很快。
用法
将其添加到您的Cargo.toml中
[dependencies]
markov_rs = "0.1"
示例
use markov_rs::MarkovChain;
fn main() {
let text = [
"I", "think", "that", "that", "that", "that", "that", "boy", "wrote", "is", "wrong",
];
let mut model = MarkovChain::from(&text);
for _ in 0..20 {
print!("{} ", model.next());
}
}
计划中
- 提高模型构建性能。
- 支持N阶马尔可夫链。
许可证
根据您选择的以下许可证之一授予许可
- Apache许可证第2版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,均应根据上述许可双许可,而无需任何额外的条款或条件。
依赖项
~0.7–1.3MB
~28K SLoC