Сегодня почти 30 процентов задач выполняют чат-боты. Компании используют чат-ботов для предоставления таких услуг, как поддержка клиентов, генерация информации и т. Д. На таких примерах, как Siri, Alexa, становится ясно, как чат-боты могут изменить нашу повседневную жизнь. В этой статье мы узнаем, как создать чат-бота на Python, используя библиотеку ChatterBot, которая реализует различные алгоритмы машинного обучения для генерации ответов. В этой статье обсуждаются следующие темы:

  • Что такое чат-бот?
  1. Эволюция чат-ботов
  2. Ограничения чат-бота
  3. Как это работает?
  • Библиотека чаттербота на Python
  1. Как это работает?
  • Тренер для чат-бота
  • Пример использования - чат-бот Flask

Что такое чат-бот?

Чат-бот, также известный как чат-бот, бот, искусственный агент и т. Д., В основном представляет собой программу, управляемую искусственным интеллектом, которая служит для общения с пользователем с помощью текстов или речи. Известные примеры включают Siri, Alexa и т. Д.

Эти чат-боты склонны выполнять конкретную задачу для пользователя. Чат-боты часто выполняют такие задачи, как совершение транзакции, бронирование отеля, отправка форм и т. Д. Возможности чат-бота безграничны с технологическими достижениями в области искусственного интеллекта.

Почти 30 процентов задач выполняются чат-ботами в любой компании. Компании используют этих чат-ботов для таких услуг, как поддержка клиентов, для доставки информации и т.д. Давайте посмотрим на эволюцию чат-ботов за последние несколько десятилетий.

Эволюция чат-ботов

Все началось в 1966 году, когда Джозеф Вайценбаум создал диалоговую программу на естественном языке, которая предусматривала диалог между пользователем и компьютерной программой. С этим великим прорывом появилась технология чат-ботов нового века, которая за десятилетия сделала огромный скачок.

Ограничения чат-бота

С ростом прогресса также наступает момент, когда становится довольно сложно работать с чат-ботами. Ниже приведены некоторые ограничения, с которыми мы сталкиваемся при использовании чат-ботов.

  • Знание предметной области. Поскольку настоящий искусственный интеллект все еще недоступен, любому чат-боту становится сложно полностью понять границы разговора, когда дело доходит до разговора с человеком.
  • Личность. Невозможность правильно реагировать и довольно слабые навыки понимания прочитанного - более чем частые ошибки любого чат-бота, добавление личности в чат-бота - все еще критерий, который кажется далеким. Но мы более чем надеемся на существующие инновации и подходы, ориентированные на прогресс.

Как это работает?

Мы можем разделить чат-ботов на две категории, это две категории чат-ботов:

  1. Подход, основанный на правилах. При таком подходе бот обучается в соответствии с правилами. На основе этого бот может отвечать на простые запросы, но иногда не может отвечать на сложные запросы.
  2. Подход с самообучением. Эти боты используют подход машинного обучения, который является более эффективным и делится на еще две категории.
  • Модели на основе поиска. При таком подходе бот извлекает лучший ответ из списка ответов в соответствии с вводом пользователя.
  • Генеративные модели. Эти модели часто дают ответы, чем поиск по набору ответов, что также делает их умными ботами.

Попробуем создать чат-бота с нуля, используя библиотеку chatterbot на Python.

Библиотека ChatterBot на Python

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

Независимость от языка

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

Как это работает?

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

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

Как установить ChatterBot на Python?

Выполните следующую команду в терминале или в командной строке, чтобы установить ChatterBot на python.

pip install chatterbot

Тренер для чат-бота

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

Ниже приведен простой пример для начала работы с ChatterBot на Python.

from chatterbot import chatbot
from chatterbot.trainers import ListTrainer
 
#creating a new chatbot
chatbot = Chatbot('Edureka')
trainer = ListTrainer(chatbot)
trainer.train([ 'hi, can I help you find a course', 'sure I'd love to find you a course', 'your course have been selected'])
 
#getting a response from the chatbot
response = chatbot.get_response("I want a course")
print(response)

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

Пример использования - Flask ChatterBot

После того, как мы закончили настройку приложения flask, нам нужно добавить еще два статических каталога и шаблоны для файлов HTML и CSS. Ниже приведен код приложения ChatterBot.

App.py

from flask import Flask, render_template, request
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
 
app = Flask(__name__)
 
english_bot = ChatBot("Chatterbot", storage_adapter="chatterbot.storage.SQLStorageAdapter")
trainer = ChatterBotCorpusTrainer(english_bot)
trainer.train("chatterbot.corpus.english")
 
@app.route("/")
def home():
    return render_template("index.html")
 
@app.route("/get")
def get_bot_response():
    userText = request.args.get('msg')
    return str(english_bot.get_response(userText))
 
 
if __name__ == "__main__":
    app.run()

index.html

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<h1>Flask Chatterbot Example</h1>
<div>
<div id="chatbox">
<p class="botText"><span>Hi! I'm Chatterbot.</span></p>
</div>
<div id="userInput">
<input id="textInput" type="text" name="msg" placeholder="Message">
<input id="buttonInput" type="submit" value="Send">
</div>
<script>
function getBotResponse() {
var rawText = $("#textInput").val();
var userHtml = '<p class="userText"><span>' + rawText + '</span></p>';
$("#textInput").val("");
$("#chatbox").append(userHtml);
document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
$.get("/get", { msg: rawText }).done(function(data) {
var botHtml = '<p class="botText"><span>' + data + '</span></p>';
$("#chatbox").append(botHtml);
document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
});
}
$("#textInput").keypress(function(e) {
if(e.which == 13) {
getBotResponse();
}
});
$("#buttonInput").click(function() {
getBotResponse();
})
</script>
</div>
</body>
</html>

Файл index.html будет содержать шаблон приложения, а style.css будет содержать таблицу стилей с кодом CSS. После того, как мы выполним указанную выше программу, мы получим результат, как показано на изображении ниже.

Style.css

body
{
font-family: Garamond;
background-color: black;
}
h1
{
color: black;
margin-bottom: 0;
margin-top: 0;
text-align: center;
font-size: 40px;
}
h3
{
color: black;
font-size: 20px;
margin-top: 3px;
text-align: center;
}
#chatbox
{
background-color: black;
margin-left: auto;
margin-right: auto;
width: 40%;
margin-top: 60px;
}
#userInput {
margin-left: auto;
margin-right: auto;
width: 40%;
margin-top: 60px;
}
#textInput {
width: 87%;
border: none;
border-bottom: 3px solid #009688;
font-family: monospace;
font-size: 17px;
}
#buttonInput {
padding: 3px;
font-family: monospace;
font-size: 17px;
}
.userText {
color: white;
font-family: monospace;
font-size: 17px;
text-align: right;
line-height: 30px;
}
.userText span {
background-color: #009688;
padding: 10px;
border-radius: 2px;
}
.botText {
color: white;
font-family: monospace;
font-size: 17px;
text-align: left;
line-height: 30px;
}
.botText span {
background-color: #EF5350;
padding: 10px;
border-radius: 2px;
}
#tidbit {
position:absolute;
bottom:0;
right:0;
width: 300px;
}

Вывод:

Перейдите по адресу, указанному в выводе, и вы получите приложение с чат-ботом в браузере.

Чат-бот будет выглядеть примерно так: в нем будет текстовое поле, в котором мы можем вводить данные пользователя, и бот сгенерирует ответ на это утверждение.

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

Если вы хотите ознакомиться с другими статьями о самых популярных технологиях на рынке, таких как искусственный интеллект, DevOps, этический взлом, посетите официальный сайт Edureka.

Обязательно обратите внимание на другие статьи в этой серии, которые объяснят различные другие аспекты Python и Data Science.

1. Классификатор машинного обучения на Python

2. Шпаргалка по Python Scikit-Learn

3. Инструменты машинного обучения

4. Библиотеки Python для науки о данных и машинного обучения

5. Вопросы для собеседования по Python

6. Коллекции Python

7. Модули Python

8. Навыки Python-разработчика

9. Вопросы и ответы на собеседовании ООП

10. Резюме для Python-разработчика

11. Исследовательский анализ данных в Python

12. Змейка с модулем Python Turtle

13. Зарплата разработчика Python

14. Анализ главных компонентов

15. Python vs C ++

16. Учебник по царапинам

17. Python SciPy

18. Метод регрессии наименьших квадратов

19. Шпаргалка по Jupyter Notebook

20. Основы Python

21. Программы-шаблоны Python

22. Генераторы в Python

23. Python Decorator

24. Python Spyder IDE

25. Мобильные приложения, использующие Kivy в Python

26. 10 лучших книг для изучения и практики Python

27. Робот-фреймворк с Python

28. Змейка на Python с использованием PyGame

29. Интервью с Django: вопросы и ответы

30. 10 лучших приложений Python

31. Хеш-таблицы и хэш-карты в Python

32. Python 3.8

33. Машина опорных векторов

34. Учебник по Python

Первоначально опубликовано на https://www.edureka.co 6 августа 2019 г.