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

在用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")

你可能感兴趣的:(python,机器学习,nlp,人工智能)