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

Создание болтовни в Python

Я довольно новичок в мире Python и помимо просмотра материала курса на эту тему, я … Помечено Python, программирование.

Я довольно новичок в мире Python и кроме просмотра материала курса на эту тему, я подумал, что буду бросить вызов себе. Я потратил несколько часов этим утром, связывающимся с компанией, чтобы переместить мою широкополосную связь на мой новый адрес и наткнулся на автоматизированный чатбор, который сделал после нескольких вопросов, заставил работу, но некоторые из этих вопросов были неактуальными и потребляющимися Поэтому я думал, что поехал с моими новыми навыками, чтобы построить свой собственный!

Этот пост сначала пробоя кода, а также способ понять именно то, что я сделал и, надеюсь, поможет вам также.

Один момент я сделаю, это то, что Python имеет огромную библиотеку пакетов! Больше, чем я считал честным, и если вы думаете о том, чтобы что-то сделать, то я уверен, что в дикой природе это пакет уже существует, чтобы помочь вам в вашем квесте.

Так что давайте взломать! Создайте новую папку и позвоните ему, что вы выберете. Я пошел на/Chatterbot

Откройте папку с любым текстовым редактором, который вы используете, и создаете новый файл Python, не называете его Chatterbot.py по причинам, которые вы увидите через секунду.

Как только у нас есть этот файл, давайте устанавливаем наши пакеты и начните, если вы запустите в своем терминале:

pip3 install chatterbot
pip3 install chatterbot_corpus
pip3 install pytz

Теперь я предполагаю, что вы используете MAC с MacOS и Python 3, если вы не устанавливаете вышеупомянутое то же самое, что вы установите любые другие пакеты PIP.

Хорошо, теперь нам нужно импортировать пакеты в наш проект и написать наш маленький бот.

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

Если бы мы назвали наш файл Chatterbot.py Python, теперь пытается импортировать оттуда, отсюда мою комментарий выше!

Поэтому у нас есть наш импорт, давайте использовать первый

bot = ChatBot("bot")

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

bot = ChatBot(
    "bot",
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///db.sqlite3',
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'
    ]
    )

Хорошо, так что мы здесь делаем? Ну, во-первых, мы создаем SQLite DB, если никто не существует, а затем мы используем его для хранения данных, которые являются кормить, поэтому наш бот может использовать его, чтобы определить любые ответы, которые он хочет дать. Chatterbot также позволяет нам использовать много логических адаптеров. Когда используется более чем один логический адаптер, THATBOT разработает уровень доверия! Ответ с самым высоким расчетным доверием будет возвращен, и здесь мы использовали две логические адаптеры, Bestmatch и TimelogiCadapter.

Может быть, время мы преподаем нашему боте вещь или два! Поэтому нам теперь нужно немного тренировать наш бот, и, используя следующий код, бот будет иметь некоторые фразы и такие, чтобы воспользоваться пользователем, задающим ему вопросы

# Creates an instance of the trainer    
lessons = ListTrainer(bot)

# Simple statements to teach the bot
lessons.train([
    'Hi',
    'Hello',
    'Good Morning',
    'Good Morning',
    'I need to ask a question about my order',
    'Please, Can i have your order id',
    'Ok I can see your order has been shipped',
    "That's great",
    'Is there anything else I can help you with',
    'No thank you',
    'Ok great, have a great day!',
    'Thanks',
    'Goodbye',
    'Bye'
])

Таким образом, мы обучали наш бот, мы дали ему совершенно новую БД для работы, и мы дали ему имя! Так что теперь пришло время получить ответ и проверить его все работать! Так что давайте сделаем это сейчас!

response = bot.get_response('I need to make a complaint')
print('Bot Response:', response)

Поэтому, если мы сейчас запустим наш сценарий, мы должны получить напечатанный ответ от нашего бота до вопроса «Мне нужно подарить жалобу». Просто так вы знаете, на данный момент, когда моя первая попытка я столкнулся с проблемой с NLTK и некоторыми пакетами, которые требуются, если я, как я, у вас есть то же самое, пожалуйста, сделайте следующее:

Откройте Python3 в терминале

import nltk
nltk download()

Это будет вытащить пакеты NLTK и зайдится! Если вы снова получите ошибку SSL, которую я сделал, вы можете открыть Python3 в терминале и запустить

import nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

nltk.download()

Это получил меня и мое приложение работает.

Итак, теперь мы должны увидеть ответ, и все, что нам нужно сделать сейчас, это создать полный опыт чата, поэтому мы можем задать вопросы и надеюсь получить некоторые ответы обратно.

# Grab Users name
name=input("Hello, I'm Bot! Please tell me your name? ")

#Start Questions
print("What is it I can help you with today " + name +" ?")

while True:
    request=input(name+': ')
    if request.lower() == 'bye':
        print('Bot: Bye')
        break
    else: 
        response=bot.get_response(request)
        print('Bot: ', response) 

Что происходит вот в то время как все верно, мы будем проходить по этому коду, если мы набрали «пока» в любой точке, бот отправит свои пожелания и закрыть, иначе мы вводите вопрос на вход, и бот ответит Закрыть ответ, который соответствует!

Если вам требуется дополнительная информация о Chatterbot, вы можете прочитать полные документы здесь https://chatterbot.readthedocs.io/en/stable/

Итак, чтобы обернуть вещи, у вас должен быть последний файл, который выглядит так:

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

bot = ChatBot("bot")

bot = ChatBot(
    "bot",
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///db.sqlite3',
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'
    ]
    )

# Creates an instance of the trainer    
lessons = ListTrainer(bot)

# Simple statements to teach the bot
lessons.train([
    'Hi',
    'Hello',
    'Good Morning',
    'Good Morning',
    'I need to ask a question about my order',
    'Please, Can i have your order id',
    'Ok I can see your order has been shipped',
    "That's great",
    'Is there anything else I can help you with',
    'No thank you',
    'Ok great, have a great day!',
    'Thanks',
    'Goodbye',
    'Bye'
])

# Grab Users name
name=input("Hello, I'm Bot! Please tell me your name? ")

#Start Questions
print("What is it I can help you with today " + name +" ?")

while True:
    request=input(name+': ')
    if request.lower() == 'bye':
        print('Bot: Bye')
        break
    else: 
        response=bot.get_response(request)
        print('Bot: ', response) 

Поэтому, используя ваш любимый редактор Python Get Constate и посмотрите, можете ли вы создать этот бот и иметь хороший добрый подбородок с ним!

Любые вопросы с этим учебником, пожалуйста, оставьте их в комментариях ниже, и я сделаю все возможное, чтобы помочь.

Сначала опубликовано в: https://www.leighton.com/blog/python-chatterbot.

Оригинал: “https://dev.to/grahammorby/creating-a-chatterbot-in-python-34ip”