5分钟内搭建你的第一个Python聊天机器人
时间:2022-07-22
本文章向大家介绍5分钟内搭建你的第一个Python聊天机器人,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
在人工智能时代,聊天机器人日益流行。它是业界设计用来简化人机交互的最新工具。从电子商务到医疗保健机构,每个人都希望使用Chatbot与用户进行交互。
什么是聊天机器人
聊天机器人是一种软件应用程序,用于通过文本或文本到语音进行在线聊天对话,而不是与真人代理直接接触。-根据维基百科。
聊天机器人的类型
聊天机器人可以分为两类
- 基于规则的
- 自学习
基于规则的:-基于规则的聊天机器人训练聊天机器人回答基于预先训练的规则的问题。这些类型的聊天机器人很适合进行简单的查询。
自主学习聊天机器人:自主学习聊天机器人基于机器学习算法,它们比基于规则的聊天机器人更聪明。他们可以自己学习。
聊天机器人是如何工作的
由人工智能驱动的聊天机器人是智能的,也可以自己学习。它们使用自然语言处理和机器学习算法来学习和获取数据。
例如:谷歌助手,Alexa, Siri
智能的人工智能聊天机器人提供用户数据,并学习和尝试提高自己。他们用复杂的人工智能算法分析它,并以文本或语音的形式输出响应。
由于这些机器人可以从行为和经验中学习,它们可以对广泛的查询和命令作出回应。
开始加建
今天,我们将使用ChatterBot库创建python chatbot。让我们开始吧!
1. 创建虚拟环境
pipenv是一个轻松创建虚拟环境的python库。
pip install pipenvpipenv install
2. 安装库
我们将使用ChatterBot库来创建简单的Python Chatbot。通过pip命令安装chatterbot和chatterbot_corpus。
pipenv install chatterbotpipenv install chatterbot_corpus
3.创造和训练聊天机器人
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
BOTNAME = "Pyter"
def start():
bot = ChatBot(BOTNAME,
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch',
'default_response': 'I am sorry, but I do not understand.',
'maximum_similarity_threshold': 0.90,
},
],
preprocessors = [
"chatterbot.preprocessors.clean_whitespace",
],
input_adaptor="chatterbot.input.TerminalAdaptor",
output_adaptor="chatterbot.output.TerminalAdaptor",
database_uri='sqlite:///database.sqlite3')
trainer = ChatterBotCorpusTrainer(bot)
# Train based on the english corpus
trainer.train(
"chatterbot.corpus.english",
"chatterbot.corpus.english.greetings",
"chatterbot.corpus.english.conversations",
)
print(f"Hello I am {BOTNAME}")
while True:
try:
bot_input = input("You: ")
bot_respose = bot.get_response(bot_input)
print(f"{BOTNAME}: {bot_respose}")
except(KeyboardInterrupt, EOFError, SystemExit):
break
if __name__ == "__main__":
start()
完整代码请参考:
https://github.com/codePerfectPlus/Python-ChatBot
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- iOS开发之CryptoKit
- koroFileHeader更新日志
- 掌握浏览器重绘(reflow)重排(repaint)-前端进阶
- var和let/const的区别
- 刷新/关闭页面之前发送请求
- Web Beacon 刷新/关闭页面之前发送请求
- 解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
- python3 logging日志封装实例
- 解决Python中报错TypeError: must be str, not bytes问题
- H5 notification浏览器桌面通知
- Android线程池控制并发数多线程下载
- Android progressbar实现带底部指示器和文字的进度条
- js 调用栈机制与ES6尾调用优化介绍
- Android Fragment实现列表和内容联动
- 前端中等算法-无重复字符的最长子串