欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Python编写Chatbot过程中遇到的问题及解决方法汇总

程序员文章站 2022-06-04 14:42:30
...

在用PySimpleGUIchatterbot编写一个chatbot的过程中,遇到了一些安装和导入包的问题,在此做一个汇总,希望可以帮助到遇到类似问题的你。
PySimpleGUI官方repo中的chatbot范例链接:Link

pip3 install chatterbot 报错

如果你的Python版本在3.8或3.8以上,在安装chatterbot中的spacy时,会出现安装不成功的情况:
Collecting spacy<2.2,>=2.1
Using cached spacy-2.1.9.tar.gz (30.7 MB)
Installing build dependencies ... -
(进度条不动且最终有一长串报错)

发生这个问题的原因也许是spacy还没有对Python 3.8及更高版本进行适配,所以这时我选择把Python的编译环境换成3.8以下(3.6 亲测可行)

OSError: [E050] Can’t find model ‘en’

raise IOError(Errors.E050.format(name=name)) OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

解决方法:在terminal中运行此命令行下载 model ‘en’

python -m spacy download en

引用自:https://github.com/hamelsmu/Seq2Seq_Tutorial/issues/1

‘ChatBot’ object has no attribute ‘train’

chatbot.train("chatterbot.corpus.english")
AttributeError: 'ChatBot' object has no attribute 'train'

正如这个报错所描述的一样,Chatbot没有’train’这个attribute。解决方法也很简单,只要import ChatterBotCorpusTrainer并创造一个trainer的实例就可以解决:

from chatterbot.trainers import ChatterBotCorpusTrainer
...
(你的代码)
...
# 这一行是之前报错的代码 ⬇️
# chatbot.train("chatterbot.corpus.english")

# 改为 ⬇️ 即可
trainer = ChatterBotCorpusTrainer(chatbot)

trainer.train("chatterbot.corpus.english")