为啥写,主要是我看到了一篇关于python机器人的,看完简直想亲自试试,太酷了一点吧,so,let’s do it。
1.准备环境
(1)pip install pipenv(我是通过root身份进行安装 sudo pip install pipenv ,因为报错,有权限设置住了),嘿嘿,第二次进去就好使了~
(2)pipenv install
2.库的安装
pipenv install chatterbot
pipenv install chatterbot_corpus
这里的坑:
方法一.
去指定的路径下进行命令操作,升级pip,执行 python.exe -m pip install matplotlib -i ,然后替换matplotlib下载对应库这个。。。我试了,可是还是不行,气人~呀
方法二.
只能下载whl文件和源码来安装,这个可以。
直接上代码,可以发现还是比较简单的,核心就是简简单单的调了一下路径,声明了两种情况,成功和失败时,打印输出,然后在声明了一下主函数就没了。额.>-<. (我都写了注释)
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
BOTNAME = “MyRobot”
#取个名字
def start():
bot = ChatBot(BOTNAME,
logic_adapters=[
{
‘import_path’: ‘chatterbot.logic.BestMatch’,
‘default_response’: ’ I can’t 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)
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://developer.51cto.com/art/202007/622541.htm