首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止聊天机器人每次下载和显示日志的培训文件?

如何停止聊天机器人每次下载和显示日志的培训文件?
EN

Stack Overflow用户
提问于 2020-02-04 11:18:07
回答 3查看 778关注 0票数 0

我正在建造一个聊天机器人。我每次运行这个程序时,如何阻止它被训练?

我的节目:

代码语言:javascript
复制
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

chatbot = ChatBot('Adithyan AK')

trainer = ChatterBotCorpusTrainer(chatbot)

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

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

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

while(True):

    query = input("You : ")
    response = chatbot.get_response(query)

    print(response)

每次运行上述程序时,我都会收到下面的日志消息。

代码语言:javascript
复制
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data]   Package stopwords is already up-to-date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /root/nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
/usr/local/lib/python3.7/dist-packages/chatterbot/corpus.py:38: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  return yaml.load(data_file)
Training ai.yml: [####################] 100%
Training botprofile.yml: [####################] 100%
Training computers.yml: [####################] 100%
Training conversations.yml: [####################] 100%
Training emotion.yml: [####################] 100%
Training food.yml: [####################] 100%
Training gossip.yml: [####################] 100%
Training greetings.yml: [####################] 100%
Training health.yml: [####################] 100%
Training history.yml: [####################] 100%
Training humor.yml: [####################] 100%
Training literature.yml: [####################] 100%
Training money.yml: [####################] 100%
Training movies.yml: [####################] 100%
Training politics.yml: [####################] 100%
Training psychology.yml: [####################] 100%
Training science.yml: [####################] 100%
Training sports.yml: [####################] 100%
Training trivia.yml: [####################] 100%
Training greetings.yml: [####################] 100%
Training conversations.yml: [####################] 100%
  1. 我可以看到,每次我运行程序时,都会下载nltk_data &会话。下载并请求用户输入需要5-10秒。我明白保持数据的重要性。但我不希望它每次更新,除非我希望手动。我可以停止每次下载nltk_data和conversations.yml文件吗?(因为我的主程序不能等待5-10秒才能加载聊天机器人)
  2. 不管怎样,我可以停止在控制台上打印这些日志了吗?
EN

回答 3

Stack Overflow用户

发布于 2021-01-17 23:55:52

放松,先训练和腌制机器人。在你的主程序中,解开受过训练的机器人,抑制伐木,然后离开。

票数 0
EN

Stack Overflow用户

发布于 2021-01-24 08:24:00

当我尝试将聊天机器人添加到我的测试网站时,我也遇到了类似的问题。我的解决方案可能不是你想要的,但我把它放在这里。

  • 我首先创建了一个bot.py文件,其中包括执行bot培训,然后将其导入到处理页面重定向的view.py中。这导致每一次的再培训。
  • 然后,我意识到我做错了,我把这个文件导入到我的view.py中,这使得这个模块重新培训。相反,我创建了一个新的bot,并指定为相同的SQL,它工作了。

这是一些密码。

train_bot/bot.py (字面意思是取自聊天机器人文档)。

代码语言:javascript
复制
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

    
# Create a new instance of a ChatBot
bot = ChatBot(
    'train',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    logic_adapters=[
        {
            'import_path': 'chatterbot.logic.BestMatch',
            'default_response': 'I am sorry, but I do not understand.',
            'maximum_similarity_threshold': 0.90
        }
    ],
    database_uri='sqlite:///database-chatbot.db'
)

# Create a new trainer for the chatbot
trainer = ChatterBotCorpusTrainer(bot)

# Train the chatbot based on the english corpus
trainer.train("chatterbot.corpus.english")

print('Type something to begin...')


if __name__ =='__main__':
    # The following loop will execute each time the user enters input
    while True:
        try:
            user_input = input()

            bot_response = bot.get_response(user_input)

            print(bot_response)

        # Press ctrl-c or ctrl-d on the keyboard to exit
        except (KeyboardInterrupt, EOFError, SystemExit):
            break

view.py

代码语言:javascript
复制
alice = ChatBot(
        'Alice',
        storage_adapter='chatterbot.storage.SQLStorageAdapter',
        logic_adapters=[
            {
                'import_path': 'chatterbot.logic.BestMatch',
                'default_response': 'I am sorry, but I do not understand.',
                'maximum_similarity_threshold': 0.90
            }
        ],
        database_uri='sqlite:///train_bot/database-chatbot.db' #this is the same URI for the previously trained bot
    )

现在它如预期的那样起作用了。

票数 0
EN

Stack Overflow用户

发布于 2021-05-23 11:24:52

现在有点晚了,但是快速查看代码就会发现,培训师使用了一个kwarg show_training_progress,您可以将它设置为False来阻止日志的打印。

就像这样:

代码语言:javascript
复制
trainer = ChatterBotCorpusTrainer(bot, show_training_progress=False)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60056237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档