2 个版本
0.1.1 | 2021 年 6 月 13 日 |
---|---|
0.1.0 | 2021 年 6 月 13 日 |
#4 在 #chatbots
每月 38 次下载
11KB
206 行
HLTK 聊天机器人
这是一个使用 Rust 编写的正则表达式驱动的聊天机器人,它基于 NLTK https://github.com/nltk/nltk/blob/develop/nltk/chat/util.py
如何安装
添加到您的 Cargo.toml 文件中
[dependencies]
...
human_language_toolkit_chatbot = "0.1.0"
...
您可以在 https://crates.io/crates/human_language_toolkit_chatbot 找到更新版本
如何使用
您可以从 json 文件中读取。
use human_language_toolkit_chatbot::{Chatbot, ChatbotError, CompiledChatbot};
...
let suntsu = Chatbot::from_file(String::from("bots/suntsu.json")).unwrap();
...
您也可以通过编程创建机器人。
...
let mut pairs: Vec<(String, Vec<String>)> = Vec::new();
pairs.push((
String::from(r"Hello(.*)"),
vec![
String::from("Hello... I'm glad you could drop by today."),
String::from("Hi there... how are you today?"),
String::from("Hello, how are you feeling today?"),
],
));
pairs.push((
String::from(r"(.*) sorry (.*)"),
vec![
String::from("There are many times when no apology is needed."),
String::from("What feelings do you have when you apologize?"),
],
));
...
let fallback = vec![String::from("Sorry I didn't understand")];
let reflections = Chatbot::default_reflections();
let eliza = Chatbot {
pairs,
fallback,
reflections,
};
// You can save your model in a .json file
match eliza.to_file(String::from("bots/eliza.json")) {
Ok(_) => (),
Err(e) => println!("error at {}", e),
}
let eliza = eliza.compile();
您可以使用 respond
函数与机器人交谈,但您也可以使用 converse
函数进行无限对话。
让我们连接吧 😋
依赖关系
~3–5MB
~93K SLoC