前言:因为之前接过一个qq的机器人,聊天的机器人是用的别人的成品,最近不忙,就想着用Python搭建一个简单的机器人
搭建准备
我使用的是python3.7,使用虚拟环境,我觉得干净的环境比较容易找错 搭建的过程参考了两位大神的文章: 用chatterbot从零开始创建一个聊天机器人(一) 两种开源聊天机器人的性能测试(一)——ChatterBot
安装chatterbot
pip install chatterbot
pip install chatterbot-corpus
pip install spacy
测试
全部安装完成后用中文语料库测试是否正常运行
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
chatbot = ChatBot('Ron Obvious')
trainer = ChatterBotCorpusTrainer(chatbot)
trainer.train("chatterbot.corpus.chinese")
lineCounter = 1
while True:
print(chatbot.get_response(input("(" + str(lineCounter) + ") user:")))
lineCounter += 1
报错 OSError: [E941] Can’t find model ‘en’
解决办法: 网上大多数的解决方式是 : python -m spacy download en 但是在我这并不适用
这边文章有了解决办法: python -m spacy dowmload en失败
最终解决办法:下载离线包 1.https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.3.1/en_core_web_sm-2.3.1.tar.gz 2.下载完成后本地安装,(我选择复制到项目内进行安装) pip install en_core_web_sm-2.3.1.tar.gz 安装完成后,在site-packages包里找到**en_core_web_sm-2.3.**1,复制改文件到项目的目录下,并更改文件名为 ‘en’
完成后测试效果
注:等待语料库加载完成后就可以测试了
最终:看了别人的文章之后,通过测试 确实聊天的正确率不是那么高,语料库是在太少了
搞了两天.终于搞通了,我还是太菜了
|