我目前正在使用Python 3.8(64位)构建一个聊天机器人,并使用pip成功安装了Chatterbot。然而,在运行我的代码时,我遇到了一个与spaCy中的“en”模型相关的错误。我还在Windows10中使用命令提示符安装了spaCy。
错误消息:
Traceback (most recent call last):
File "C:/Users/User/AppData/Local/Programs/Python/Python38/chatt.py", line 12, in <module>
chatbot = ChatBot('MyChatBot')
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\chatterbot\chatterbot.py", line 28, in __init__
self.storage = utils.initialize_class(storage_adapter, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\chatterbot\utils.py", line 33, in initialize_class
return Class(*args, **kwargs)
File "C:\Users\Uer\AppData\Local\Programs\Python\Python38\lib\site-packages\chatterbot\storage\sql_storage.py", line 20, in __init__
super().__init__(**kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\chatterbot\storage\storage_adapter.py", line 22, in __init__
self.tagger = Tagger(language=kwargs.get(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\chatterbot\tagging.py", line 26, in __init__
self.nlp = spacy.load(self.language.ISO_639_1.lower())
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\spacy\__init__.py", line 54, in load
return util.load_model(
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\spacy\util.py", line 448, in load_model
raise IOError(Errors.E941.format(name=name, full=OLD_MODEL_SHORTCUTS[name])) # type: ignore[index]
OSError: [E941] Can't find model 'en'. It looks like you're trying to load a model from a shortcut, which is obsolete as of spaCy v3.0. To load the model, use its full name instead:
nlp = spacy.load("en_core_web_sm")
For more details on the available models, see the models directory: https://spacy.io/models. If you want to create a blank model, use spacy.blank: nlp = spacy.blank("en")
代码:
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
chatbot = ChatBot('MyChatBot')
trainer = ChatterBotCorpusTrainer(chatbot)
trainer.train("chatterbot.corpus.english")
while True:
user_input = input("You: ")
response = chatbot.get_response(user_input)
print("ChatBot:", response)
其他详细信息:
-Python版本:3.8(64位)
-操作系统:Windows 10
-spaCy版本:3.5.3
-ChatterBot 1.1.0a7版
我尝试了各种方法,包括将Python版本更改为3.7,以及安装不同版本的spaCy(如3.4.0),但我仍然遇到“en”模型未找到错误。
如果能为解决这一问题提供任何帮助,我将不胜感激。提前感谢您的帮助。