#nlp #chat-bot #artificial-intelligence #jarvis #regex #hlp

bin+lib human_language_toolkit_chatbot

使用纯 Rust 开发的类似 NLTK 的聊天机器人

2 个版本

0.1.1 2021 年 6 月 13 日
0.1.0 2021 年 6 月 13 日

#4#chatbots

每月 38 次下载

MIT/Apache

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 函数进行无限对话。

让我们连接吧 😋

Hector 的 LinkedIn     Hector 的 Twitter     Hector 的 Twitch     Hector 的 Youtube    

依赖关系

~3–5MB
~93K SLoC