ChatterBot聊天机器人教程02—MongoDB
2016-12-16 15:56
447 查看
安装篇
下载Windows 版本 Mongodb 3.4.0,官方提供x32、x64。我使用mongodb-win32-x86_64-2008plus-ssl-3.4.0-signed.msi。地址:https://www.mongodb.com/download-center#community。
运行mongodb-win32-x86_64-2008plus-ssl-3.4.0-signed.msi,选择自定义安装
,选择安装目录。
配置相关文件(建议在安装目录MongoDB文件夹下,与Server同级目录),新建数据库目录\MongoDB\data,新建日志目录\MongoDB\logs,此目录中新建mongodb.log文件,新建配置文件\MongoDB\mongo.conf,内容如下:
配置MongoDB环境变量:编辑path,添加;安装目录:\MongoDB\Server\bin;
执行Mongo.conf文件,等待几分钟创建data文件完成
注意:不要关闭这个cmd页面。
浏览器地址栏输入:http://127.0.0.1:27017/出现下图表示配置成功
测试MongoDB运行状态,执行如下命令,测试成功
简单使用MongoDB
使用MongoDB
设置storage_adapter参数:storage_adapter="chatterbot.storage.MongoDatabaseAdapter"
在运行之前,要先确保MongoDB打开。
训练
chatterbot有自带的训练类,你也可以创建自己的。要使用训练类,你必须将其导入,调用方法train()之前调用方法set_trainer()。
英语语料库训练。
运行结果:
指定语料库范围:
Ubuntu dialog corpus:chatbot使用Ubuntu对话语料库数据进行训练。Ubuntu对话语料库在程序指定后首先要下载(比较大)和解压提取。
你的自定义训练类应该继承chatterbot.trainers.Trainer类。你的训练类将需要一个方法叫train(),可以执行你选择的任何参数。
语料库
要了解哪些语言和语料库集可用,请查看存储库中的chatterbot / corpus / data目录。自定义语料库格式:*.corpus.json,*代表该类文件的类型。
例如conversations.corpus.json内容格式为:
逻辑适配器
最佳匹配适配器:逻辑adater返回基于已知响应的输入语句最匹配的响应。
时间逻辑适配器:该TimeLogicAdapter返回当前时间。
数学适配器:计算数学相关问题。
具体的回应适配器:
输入输出适配器
终端适配器:输入终端适配器允许用户键入到它们的终端与聊天机器人进行通信。
微软机器人框架适配器:
下载Windows 版本 Mongodb 3.4.0,官方提供x32、x64。我使用mongodb-win32-x86_64-2008plus-ssl-3.4.0-signed.msi。地址:https://www.mongodb.com/download-center#community。
运行mongodb-win32-x86_64-2008plus-ssl-3.4.0-signed.msi,选择自定义安装
,选择安装目录。
配置相关文件(建议在安装目录MongoDB文件夹下,与Server同级目录),新建数据库目录\MongoDB\data,新建日志目录\MongoDB\logs,此目录中新建mongodb.log文件,新建配置文件\MongoDB\mongo.conf,内容如下:
##数据文件 dbpath=E:\AppData\MongoDB\data ##日志文件 logpath=E:\AppData\MongoDB\logs\mongodb.log ##错误日志采用追加模式 logappend=true #启用日志文件,默认启用 journal=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true #端口号默认为27017 port=27017 |
执行Mongo.conf文件,等待几分钟创建data文件完成
注意:不要关闭这个cmd页面。
浏览器地址栏输入:http://127.0.0.1:27017/出现下图表示配置成功
测试MongoDB运行状态,执行如下命令,测试成功
简单使用MongoDB
使用MongoDB
设置storage_adapter参数:storage_adapter="chatterbot.storage.MongoDatabaseAdapter"
# -*- coding: utf-8 -*- from chatterbot import ChatBot importlogging # Uncomment the following line to enable verbose logging # logging.basicConfig(level=logging.INFO) # Create a new ChatBot instance bot = ChatBot('Terminal', storage_adapter='chatterbot.storage.MongoDatabaseAdapter', logic_adapters=[ 'chatterbot.logic.BestMatch' ], filters=[ 'chatterbot.filters.RepetitiveResponseFilter' ], input_adapter='chatterbot.input.TerminalAdapter', output_adapter='chatterbot.output.TerminalAdapter', database='chatterbot-database' ) print('Type something to begin...') whileTrue: try: bot_input = bot.get_response(None) # Press ctrl-c or ctrl-d on the keyboard to exit except (KeyboardInterrupt, EOFError, SystemExit): break |
训练
chatterbot有自带的训练类,你也可以创建自己的。要使用训练类,你必须将其导入,调用方法train()之前调用方法set_trainer()。
英语语料库训练。
from chatterbot import ChatBot from chatterbot.trainers import ChatterBotCorpusTrainer chatbot = ChatBot("Ron Obvious") chatbot.set_trainer(ChatterBotCorpusTrainer) chatbot.train( "chatterbot.corpus.english" ) response = chatbot.get_response("I love you") print(response) |
指定语料库范围:
chatbot.train( "chatterbot.corpus.english.greetings", "chatterbot.corpus.english.conversations" ) |
# -*- coding: utf-8 -*- Ubuntu语料库太大 from chatterbot import ChatBot from chatterbot.trainers importUbuntuCorpusTrainer # Uncomment the following line to enable verbose logging # logging.basicConfig(level=logging.INFO) # Create a new ChatBot instance bot = ChatBot('Terminal', storage_adapter='chatterbot.storage.MongoDatabaseAdapter', logic_adapters=[ 'chatterbot.logic.BestMatch' ], filters=[ 'chatterbot.filters.RepetitiveResponseFilter' ], input_adapter='chatterbot.input.TerminalAdapter', output_adapter='chatterbot.output.TerminalAdapter', database='chatterbot-db1', trainer="chatterbot.trainers.UbuntuCorpusTrainer" ) bot.train() print('Type something to begin...') whileTrue: try: bot_input = bot.get_response(None) # Press ctrl-c or ctrl-d on the keyboard to exit except (KeyboardInterrupt, EOFError, SystemExit): break |
语料库
要了解哪些语言和语料库集可用,请查看存储库中的chatterbot / corpus / data目录。自定义语料库格式:*.corpus.json,*代表该类文件的类型。
例如conversations.corpus.json内容格式为:
{ "conversations": [ [ "早上好,你好吗?", "我挺好的,你呢", "我也还不错", "那很好.", "是啊." ], [ "你听到新闻了吗?", "什么新闻?" ], [ "你是一个程序员吗?", "我是个程序员", "你使用什么语言呢?", "我经常使用 Python, Java 和 C++ .", "我常使用 Python.", "我不怎么喜欢 Java.", "什么使你心烦?", "它有许多不一致的地方" ], [ "你爱我吗?", "我对你的感情,是人类和bot之间独有的信任和友谊你可以把它叫做爱。" ] ] } |
最佳匹配适配器:逻辑adater返回基于已知响应的输入语句最匹配的响应。
logic_adapters=[ 'chatterbot.logic.BestMatch' ], |
数学适配器:计算数学相关问题。
具体的回应适配器:
# -*- coding: utf-8 -*- fromchatterbotimportChatBot # Create a new instance of a ChatBot bot=ChatBot( 'Exact Response Example Bot', storage_adapter='chatterbot.storage.JsonFileStorageAdapter', logic_adapters=[ { 'import_path': 'chatterbot.logic.BestMatch' }, { 'import_path': 'chatterbot.logic.SpecificResponseAdapter', 'input_text': 'Help me!', 'output_text': 'Ok, here is a link: http://chatterbot.rtfd.org/en/latest/quickstart.html' } ], trainer='chatterbot.trainers.ListTrainer' ) # Get a response given the specific input response=bot.get_response('Help me!') print(response) |
终端适配器:输入终端适配器允许用户键入到它们的终端与聊天机器人进行通信。
input_adapter="chatterbot.input.TerminalAdapter" |
chatbot=ChatBot( "My ChatterBot", input_adapter="chatterbot.input.Microsoft", directline_host="https://directline.botframework.com", dirctline_conversation_id="IEyJvnDULgn", direct_line_token_or_secret="RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0", ) |
相关文章推荐
- Chatbot Tutorial (聊天机器人制作教程) 每日更新 不断学习
- [聊天机器人]:开源ChatterBot工作原理
- Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建
- Seq2Seq Chatbot 聊天机器人:基于Torch的一个Demo搭建 手札
- 最新微信暴利赚钱项目,微信充值附近聊天交友源码,内置机器人自动交流 带视频教程
- 微信人工智障聊天机器人创建教程
- 聊天机器人教学:使用Dialogflow (API.AI)开发 iOS Chatbot App
- Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(三)--前后端环境配置
- 聊天机器人 AIML文件 <bot>标签解释(四)
- seq2seq-chatbot:200 行代码实现聊天机器人
- Python 数据科学入门教程:TensorFlow 聊天机器人
- 使用 ChatterBot 做简单的机器人
- Docker系列教程02-MongoDB默认开启鉴权
- Node+Express+MongoDB+Socket.io搭建实时聊天应用实战教程(一)--MongoDB入门
- 最新微信暴利赚钱项目,微信充值附近聊天交友源码,内置机器人自动交流 带视频教程
- springBoot系列教程02:mongodb的集成及使用
- 聊天机器人资源合集:项目,语聊,论文,教程。
- PSP 编程 教程01-02
- Direct3D9 教程02
- 用.NET开发MSN聊天机器人-MSN聊天机器人开发揭秘(ZT)