我正在使用python chatterbot和chatterbot_语料库开发聊天机器人,我正处于获取语料库的阶段。当我运行代码时,我在语料库文件中得到一个错误
parts = dotted_path.split('.')
AttributeError: 'list' object has no attribute 'split'
实际上,它应该运行并访问语料库文件。任何帮助都将不胜感激,我将把我所有的代码放在下面
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
from chatterbot.trainers import ChatterBotCorpusTrainer
import chatterbot_corpus
bot = ChatBot(
'IKO',
logic_adapters=[
'chatterbot.logic.BestMatch',
'chatterbot.logic.TimeLogicAdapter',
'chatterbot.logic.MathematicalEvaluation'],
storage_adapter='chatterbot.storage.SQLStorageAdapter',
database_uri='sqlite:///database.sqlite3'
)
trainer = ListTrainer(bot)
trainer = ChatterBotCorpusTrainer(bot)
trainer.train([
"chatterbot.corpus.english.greetings",
"chatterbot.corpus.english.ai"
])
trainer.train([
"what is your name",
"my name is IKO",
"is your name IKO",
"yes"
])
trainer.train([
"turn on the light",
"ok turning the light on"
])
name = input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
request=input(name+':')
if request=='Bye' or request =='bye':
print('Bot: Bye')
break
elif "turn" in request and "on" in request and "light" in request:
sig = "light on"
print(sig)
else:
response=bot.get_response(request)
print('Bot:',response)
整个错误是:
runfile('C:/Users/jax02/OneDrive/Desktop/IKO/IKO/AI-trunt 2.py',wdir='C:/Users/jax02/OneDrive/Desktop/IKO/IKO') 回溯(最近一次呼叫最后一次):
文件“”,第1行,在 runfile('C:/Users/jax02/OneDrive/Desktop/IKO/IKO/AI-trunt 2.py',wdir='C:/Users/jax02/OneDrive/Desktop/IKO/IKO')
文件“C:\Users\jax02\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第827行,在runfile中 execfile(文件名、命名空间)
文件“C:\Users\jax02\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第110行,在execfile中 exec(编译(f.read(),文件名,'exec'),命名空间)
文件“C:/Users/jax02/OneDrive/Desktop/IKO/IKO/AI-trunt 2.py”,第21行,在 “chatterbot.corpus.english.ai”
文件“C:\Users\jax02\Anaconda3\lib\site packages\chatterbot\trainers.py”,第133行,列车中 扩展(列出语料库文件(语料库路径))
文件“C:\Users\jax02\Anaconda3\lib\site packages\chatterbot\corpus.py”,第66行,在列表\u corpus\u文件中 语料库路径=获取文件路径(虚线路径,扩展名=语料库扩展名)
文件“C:\Users\jax02\Anaconda3\lib\site packages\chatterbot\corpus.py”,第30行,在get\u File\u路径中 零件=虚线路径分割('.'))
AttributeError:“list”对象没有属性“split”
其中一个问题是您正在覆盖已声明的变量
❌
✅
另一个问题是,当你通过
ListTrainer
训练时,你必须向它传递一个列表,但当你通过ChatterBotCorpusTrainer
训练时,你没有。 您可以在文档中看到这一点ListTrainer example
ChatterBotCorpusTrainer example
因此,让我们做一些更改(请记住,变量名称已经更改)
❌
✅
如果您不理解,下面是最终的代码:
相关问题 更多 >
编程相关推荐