Рубрики
Без рубрики

Python Chatbot с Chatterbot

О Chatterbot Chatterbot – это библиотека Python, которая позволяет легко генерировать автоматизированные … Теги с Python, Show Dev, Машинное обучение, Учебное пособие.

О Chatterbot.

Chatterbot это библиотека Python, которая позволяет легко генерировать автоматизированные ответы на ввод пользователя. Chatterbot использует выбор алгоритмов обучения машин для получения различных типов ответов. Это облегчает разработчикам создавать боты чата и автоматизировать разговоры с пользователями. Для получения более подробной информации о идеях и концепциях позади Chatterbot см. Диаграмму процессов.

Установка

F Вы просто начинаете с Chatterbot, рекомендуется начать с установки последней версии из индекса пакета Python (Pypi). Чтобы установить Chatterbot из Pypi, используя PIP, запустите следующую команду в вашем терминале.

pip install chatterbot

Создание вашего первого бота чата

Создайте новый файл с именем ChatBot_basic.py. Затем откройте chatbot_basic.py в вашем редакторе выбора.

Прежде чем мы сделаем все остальное, что Chatterbot должен быть импортирован. Импорт для Chatterbot должен выглядеть следующую строку.

from chatterbot import ChatBot

Создайте новый экземпляр класса Chatbot.

bot = ChatBot('Dev.to')

Эта строка кода создала новый чат бот имени Dev.to.

Установка адаптера хранения

Chatterbot поставляется со встроенным классами адаптера, которые позволяют ему подключиться к различным типам баз данных. В этом уроке мы будем использовать SQLSTORAGEADAPTER, который позволяет Bot Chat для подключения к базам данных SQL. По умолчанию этот адаптер создаст базу данных SQLite.

Параметр базы данных используется для указания пути к базе данных, которую будет использовать бот чата. Для этого примера мы позвоним в базу данных SQLite:///database.sqlite3. Этот файл будет создан автоматически, если оно не будет уже существует.

bot = ChatBot(
    'Dev.to',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///database.sqlite3'
)

Указание логических адаптеров

Параметр logic_adapters – это список логических адаптеров. В Chatterbot логический адаптер – это класс, который принимает входную оператор и возвращает ответ на это утверждение.

Вы можете использовать столько логических адаптеров, как вы хотели бы. В этом примере мы будем использовать две логические адаптеры. TimeLogicAdapter возвращает текущее время, когда входное утверждение запрашивает его. Адаптер математики решает математические задачи, которые используют основные операции.

bot = ChatBot(
    'Norman',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    logic_adapters=[
        'chatterbot.logic.MathematicalEvaluation',
        'chatterbot.logic.TimeLogicAdapter'
    ],
    database_uri='sqlite:///database.sqlite3'
)

Обучение с данными корпуса

chatterbot.trainers.ChatterBotCorpusTrainer(chatbot, **kwargs)[source]

Позволяет обучать бот чата, используя данные из диалогового окна Chatterbot.

Chatterbot поставляется с модулем данных и полезным модулем корпусов, который позволяет легко быстро тренировать свой бот, чтобы общаться. Для этого просто укажите модули данных CORPUS, которые вы хотите использовать.

from chatbot import chatbot
from chatterbot.trainers import ChatterBotCorpusTrainer

trainer = ChatterBotCorpusTrainer(chatbot)

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

Простой пример

from chatterbot.trainers import ChatterBotCorpusTrainer
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

# Create a new ChatBot with name Dev.to
chatbot = ChatBot(
    'Dev.to',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    logic_adapters=[
        'chatterbot.logic.MathematicalEvaluation',
        'chatterbot.logic.BestMatch'
    ],
    database_uri='sqlite:///database.sqlite3'
)

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

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

print("\nHello i'm Dev.to Bot\n")
while True:
    try:
        bot_input = input()

        if bot_input.strip()=='Stop':
            print('Dev.to: Bye')
            break

        bot_response = chatbot.get_response(bot_input)
        print(bot_response)

    except(KeyboardInterrupt, EOFError, SystemExit):
        break

Hello i'm Dev.to Bot

Hi
How are you doing?
pretty good thanks
That's good to hear.
What is 4 + 13?
4 + 13 = 17
Stop
Dev.to: Bye

Создание нового учебного класса

Вы можете создать новый тренажер для обучения вашего чата из ваших собственных файлов данных. Вы можете сделать это, если вы хотите тренировать бот чата из источника данных в формате, который не поддерживается непосредственно Chatterbot.

Ваш пользовательский тренер должен наследовать Chatterbot.Trainers. Тренер класс. Ваш тренер должен будет иметь метод с именем поезд, который может предпринять какие-либо параметры, которые вы выбираете.

Посмотрите на существующие Классы тренеров на Github Например.

Оригинал: “https://dev.to/daviducolo/python-chatbot-with-chatterbot-3dbc”