chatterbot(聊天机器人)库安装及实例测试

educative.io 有一门给初学者提供的课程叫做 Build Your Own Chatbot in Python

课程前两部分简单介绍了AI的历史、机器人三定律、自然语言处理和AI的流行趋势。

第三部分介绍AI calculator的建立过程,需要chatterbot模块。(python版本:3.8.8 64-bit)

常规pip安装方法pip install chatterbot在安装spacy模块时出错;

spacy官网给出的conda方法:

conda install -c conda-forge spacy
python -m spacy download en_core_web_sm

依然无法解决问题。

*上搜索有找到相关问题:

https://*.com/questions/44925395/error-while-installing-chatterbot?r=SearchResults

方法1:pip install chatterbot==1.0.4
chatterbot(聊天机器人)库安装及实例测试

方法2:https://github.com/gunthercox/ChatterBot/archive/master.zip
下载源文件解压,cmd切换到该文件路径,使用python setup.py install,如果不行可尝试管理员权限。
chatterbot(聊天机器人)库安装及实例测试

我先尝试了方法2,成功安装1.1.0版本,但是在D:\anaconda3\Lib\site-packages 中找不到chatter文件夹,于是卸载重装了1.0.4版本。
chatterbot(聊天机器人)库安装及实例测试
chatterbot(聊天机器人)库安装及实例测试

运行ai_calculator.py,出现nltk_data找不到包的问题:
chatterbot(聊天机器人)库安装及实例测试
nltk官网有相关参考,文件可以在https://github.com/nltk/nltk_data/的packages里找,注意将各个压缩包解压放在以上searched in的任一文件夹下。

虽然一直存在nltk_data连接不上的问题
chatterbot(聊天机器人)库安装及实例测试

等了一会儿后,还是成功运行了:
chatterbot(聊天机器人)库安装及实例测试

另一个对话bot也是等了一会儿后成功运行:
chatterbot(聊天机器人)库安装及实例测试

附ai_calculator.py代码:

from chatterbot import ChatBot

# naming the ChatBot calculator
# using mathematical evaluation logic
# the calculator AI will not learn with the user input
Bot = ChatBot(name = 'Calculator',
                read_only = True,                  
                logic_adapters = ["chatterbot.logic.MathematicalEvaluation"],                 
                storage_adapter = "chatterbot.storage.SQLStorageAdapter")
    

# clear the screen and start the calculator
print('\033c')
print("Hello, I am a calculator. How may I help you?")
while (True):
    # take the input from the user
    user_input = input("me: ")
    
    # check if the user has typed quit to exit the prgram   
    if user_input.lower() == 'quit':
        print("Exiting")
        break

    # otherwise, evaluate the user input
    # print invalid input if the AI is unable to comprehend the input
    try:
        response = Bot.get_response(user_input)
        print("Calculator:", response)
    except:
        print("Calculator: Please enter valid input.")
上一篇:C#中Delegate


下一篇:docker基本使用命令