< 返回版块

Mike Tang 发表于 2024-08-20 04:20

马尔科夫文本生成算法

let training_path = "data";

// Gets the paths of evey file and directory in the training_path.
let tpaths = fs::read_dir(training_path)
	.unwrap_or_else(|_| panic!("Can't read files from: {}", training_path));

// Only the files remain
let files = tpaths
	.filter_map(|f| f.ok())
	.filter(|f| match f.file_type() {
		Err(_) => false,
		Ok(f) => f.is_file(),
	});

// Reads every file into a string
let contents = files.filter_map(|f| read_to_string(f.path()).ok());

// Creating the Markov Chain
let markov_chain = contents.fold(
	MarkovChain::with_capacity(2, 8_000_000, Regex::new(WORD_REGEX).unwrap()),
	|mut a, s| {
		a.add_text(&s);
		a
	},
);

// Number of tokens
println!("{}", markov_chain.len());

// Generation
for _ in 0..10 {
	println!("{}", markov_chain.generate_start("among the       ", 25).unwrap());
}

https://github.com/Brogolem35/markov_str

Runnables CLI - 在工作区下运行可执行文件的TUI工具

在Rust的工作区中,常常有多个可执行文件,比如很多examples什么的。这时,这个工作有助于减少打字量。

https://crates.io/crates/runnables-cli

一本新书:黑帽Rust

用Rust实现软件攻防。

https://kerkour.com/black-hat-rust

trippy - 网络路由工具

已超3k+ stars.

https://github.com/fujiapple852/trippy

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页