Содержание[Скрывать][Показывать]
Голосовые вызовы постепенно заменяются текстом и визуальными эффектами в секторе связи. Согласно опросу Facebook, более половины покупателей предпочитают покупать у компании, с которой они могут поговорить. Беседа стала новым социально приемлемым способом общения.
Это позволяет предприятиям общаться со своими клиентами в любое время и из любого места. Чат-боты набирают все большую популярность среди компаний и клиентов благодаря простоте использования и сокращению времени ожидания.
Чат-боты или автоматизированные диалоговые программы предоставляют клиентам более индивидуальный способ доступа к услугам через текстовый интерфейс. Новейшие чат-боты на базе ИИ могут распознавать запрос (вопрос, команду, приказ и т. д.), сделанный человеком (или другим ботом, началом) в определенной среде, и реагировать соответствующим образом (ответ, действие и т. д.).
В этом посте мы рассмотрим, что такое чат-боты, их преимущества, варианты использования и как создать собственный чат-бот. глубокое обучение чат-бот на Python, среди прочего.
Итак, начнем.
Итак, что такое чат-боты?
Чат-бота часто называют одной из самых передовых и многообещающих форм взаимодействия человека с машиной. Эти цифровые помощники улучшают качество обслуживания клиентов, оптимизируя взаимодействие между людьми и услугами.
В то же время они предоставляют предприятиям новые возможности для оптимизации процесса контакта с клиентами для повышения эффективности, что может сократить обычные расходы на поддержку.
Короче говоря, это программное обеспечение на основе искусственного интеллекта, предназначенное для общения с людьми на их естественных языках. Эти чат-боты часто взаимодействуют с помощью аудио или письменных методов, и они могут легко имитировать человеческий язык, чтобы общаться с людьми по-человечески.
Чат-боты учатся на своем взаимодействии с пользователями, со временем становясь все более реалистичными и эффективными. Они могут выполнять широкий спектр бизнес-операций, таких как санкционирование расходов, взаимодействие с потребителями в Интернете и привлечение потенциальных клиентов.
Создание собственного чат-бота для глубокого обучения с помощью Python
Существует множество различных видов чат-ботов в сфере обучение с помощью машины и ИИ. Некоторые чат-боты — это виртуальные помощники, другие — просто для общения, а третьи — агенты по обслуживанию клиентов.
Вы, наверное, видели некоторых из них, нанятых предприятиями для ответов на запросы. В этом руководстве мы создадим небольшого чат-бота, чтобы отвечать на часто задаваемые вопросы.
1. Установка пакетов
Наш первый шаг — установить следующие пакеты.
2. Тренировочные данные
Теперь пришло время выяснить, какую информацию нам нужно предоставить нашему чат-боту. Нам не нужно загружать большие наборы данных, потому что это простой чат-бот.
Мы будем использовать только ту информацию, которую создали сами. Чтобы эффективно следовать уроку, вам нужно создать файл .JSON в том же формате, что и показанный ниже. Мой файл называется «intents.json».
Файл JSON используется для создания набора сообщений, которые пользователь может вводить и сопоставлять с набором соответствующих ответов. Каждый словарь в файле имеет тег, который определяет, к какой группе принадлежит каждое сообщение.
Мы будем использовать эту информацию для обучения нейронной сети чтобы классифицировать фразу слов как один из тегов в нашем файле.
Затем мы можем просто взять ответ от этих групп и предоставить его пользователю. Чат-бот будет лучше и сложнее, если вы предложите ему дополнительные теги, ответы и шаблоны.
3. Загрузка данных JSON
Мы начнем с загрузки наших данных .json и импорта некоторых модулей. Соберите файл .json в том же каталоге, что и ваш. Скрипт Python. Наши данные .json теперь будут сохранены в переменной данных.
4. Извлечение данных
Теперь пришло время извлечь необходимую информацию из нашего файла JSON. Все шаблоны, а также класс/тег, к которым они принадлежат, являются обязательными.
Нам также понадобится список всех уникальных терминов в наших шаблонах (по причинам, которые мы объясним позже), поэтому давайте создадим несколько пустых списков, чтобы отслеживать эти значения.
Теперь мы пройдемся по нашим данным JSON и получим необходимую информацию. Вместо того, чтобы использовать их в виде строк, мы будем использовать токенизатор nltk.word для преобразования каждого шаблона в список слов.
Затем в нашем списке docs_x мы добавим каждый шаблон вместе с соответствующим тегом в список docs_y.
5. Составление слов
Нахождение корня слова называется стеммингом. Например, основа слова «это» может быть «это», тогда как основа слова «происходить» может быть «случаться».
Мы воспользуемся этой техникой выделения корней, чтобы сократить словарный запас нашей модели и попытаться выяснить, что вообще означают предложения. Этот код просто сгенерирует уникальный список слов, составленных из корней, которые будут использоваться на следующем этапе подготовки данных.
6. Мешок слов
Пришло время поговорить о наборе слов, поскольку мы импортировали наши данные и создали словарный запас. Нейронные сети а алгоритмы машинного обучения, как мы все знаем, требуют числового ввода. Так что наш список строк не урежет его. Нам нужен механизм для представления чисел в наших предложениях, и здесь на помощь приходит набор слов.
Каждая фраза будет представлена списком длины терминов в словаре нашей модели. Каждое слово в нашем словаре будет представлено местом в списке. Если позиция в списке равна 1, слово появляется в нашем выражении; если это 0, слово не появляется в нашем предложении.
Мы называем это набором слов, потому что не знаем последовательности, в которой слова появляются во фразе; все, что мы знаем, это то, что они существуют в словаре нашей модели.
В дополнение к структурированию нашего ввода, мы также должны форматировать наш вывод, чтобы нейронная сеть его понимала. Мы создадим выходные списки, длина которых равна количеству меток/тегов в нашем наборе данных, подобно набору слов. Каждое место в списке представляет уникальную метку/тег, а 1 в любом из этих мест указывает, какая метка/тег представлена.
Наконец, мы будем использовать массивы NumPy для хранения наших обучающих данных и выходных данных.
7. Разработка модели
Теперь, когда мы предварительно обработали все наши данные, мы готовы приступить к построению и обучению модели. Для наших целей мы будем использовать очень простую нейронную сеть с прямой связью и двумя скрытыми слоями.
Целью нашей сети будет просмотр набора слов и присвоение их классу (один из наших тегов из файла JSON). Мы начнем с создания архитектуры нашей модели. Имейте в виду, что вы можете поиграть с некоторыми числами, чтобы получить лучшую модель! Машинное обучение в основном основано на пробах и ошибках.
8. Обучение модели и сохранение
Пришло время обучить нашу модель на наших данных теперь, когда мы ее настроили! Мы добьемся этого, подгоняя наши данные к модели. Количество эпох, которые мы предоставляем, — это количество раз, когда модель будет подвергаться воздействию одних и тех же данных во время обучения.
Мы можем сохранить модель в файловую модель после того, как закончим ее обучение. tflearn — это скрипт, который можно использовать в других скриптах.
9. Использование чат-бота
Теперь вы можете начать общаться со своим ботом.
Преимущества чат-бота
- Ожидается, что боты будут работать 365 дней в году, 24 часа в сутки, бесплатно, что повысит доступность и скорость реакции.
- Эти боты — идеальные инструменты для решения трех ключевых проблем больших данных: объема, скорости и разнообразия.
- Чат-боты — это программное обеспечение, которое можно использовать для изучения и понимания потребителей компании.
- Он обладает превосходной мощностью, поскольку имеет дешевую стоимость обслуживания после получения основных преимуществ.
- Приложения для чат-ботов создают данные, которые можно сохранять и использовать для аналитики и прогнозов.
Вариант использования
- Решение запросов клиентов
- Отвечая на часто задаваемые вопросы
- Назначение клиентов в группу поддержки
- Сбор отзывов клиентов
- Рекомендую новые предложения
- Магазин с диалоговой коммерцией
- IT-отдела поддержки клиентов
- Бронирование проживания
- Перевод денег
Заключение
Чат-боты, как и другие технологии искусственного интеллекта, будут использоваться для расширения человеческих навыков и освобождения людей, чтобы они могли быть более творческими и творческими, позволяя им тратить больше времени на стратегические, а не на тактические задачи.
Предприятия, сотрудники и потребители, вероятно, выиграют от расширенных функций чат-бота, таких как более быстрые рекомендации и прогнозы, а также легкий доступ к видеоконференциям высокой четкости прямо во время разговора в ближайшем будущем, когда ИИ будет сочетаться с развитием технологий. Технология 5G.
Эти и другие возможности все еще изучаются, но по мере развития подключения к Интернету, ИИ, НЛП и машинного обучения они будут становиться все более распространенными.
Чву
Здравствуйте,
Спасибо за эту программу.
У меня есть вопрос.
«bag_of_words» не определен. Я не могу понять эту ошибку.
Подскажите, как решить эту ошибку??
Спасибо за эту программу!! Хорошего дня
сойка
Пожалуйста, добавьте функцию перед использованием раздела чата:
////////////////////////////////////////////////// ///////////////////////////////
def Bag_of_words(s,words):
сумка = [0 для _ в диапазоне (длина (слова))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) для слова в s_words]
для se в s_words:
для i, w в перечислении (слова):
если w == se:
сумка [я] = 1
вернуть numpy.array (сумка)
// Это определенно решит вашу проблему. //
////////////////////////////////////////////////// //////////////////////////
Я делюсь с вами полным кодом, чтобы вы получили четкое представление о нем.
////////////////////////////////////////////////// /////////
импортировать нлтк
из nltk.stem.lancaster импорт LancasterStemmer
стеммер = LancasterStemmer()
импортировать numpy
импортировать tflearn
импортировать тензорный поток
импортировать случайный
импорт JSON
импортный рассол
с открытым («intents.json») в качестве файла:
данные = json.load (файл)
попробовать:
с open("data.pickle", "rb") как f:
слова, метки, обучение, вывод = pickle.load(f)
Кроме:
слова = []
метки = []
документы_х = []
документы_у = []
для намерений в data["intents"]:
для шаблона в намерении["шаблоны"]:
wrds = nltk.word_tokenize (шаблон)
слова.extend(wrds)
docs_x.append(wrds)
docs_y.append (намерение [«тег»])
если намерение [«тег»] не в метках:
labels.append (намерение [«тег»])
слова = [stemmer.stem(w.lower()) для w в словах, если w != «?»]
слова = отсортировано (список (набор (слова)))
метки = отсортировано (метки)
обучение = []
вывод = []
out_empty = [0 для _ в диапазоне (длина (метки))]
для x документ в перечислении (docs_x):
сумка = []
wrds = [stemmer.stem(w.lower()) для w в документе]
для w словами:
если w прописью:
сумка.добавить(1)
еще:
сумка.добавить(0)
выходная_строка = исходящая_пустая[:]
output_row[labels.index(docs_y[x])] = 1
training.append(сумка)
output.append (output_row)
обучение = numpy.array (обучение)
вывод = numpy.массив (выход)
с open("data.pickle", "wb") как f:
pickle.dump((слова, метки, обучение, вывод), f)
тензорный поток.reset_default_graph()
сеть = tflearn.input_data (форма = [Нет, len (обучение [0])])
сеть = tflearn.full_connected (сеть, 8)
сеть = tflearn.full_connected (сеть, 8)
сеть = tflearn.full_connected (сеть, длина (выход [0]), активация = «softmax»)
сеть = tflearn.regression(net)
модель = tflearn.DNN(net)
попробовать:
model.load("model.tflearn")
Кроме:
model.fit(обучение, вывод, n_epoch=1500, batch_size=8, show_metric=True)
model.save("model.tflearn")
def Bag_of_words(s,words):
сумка = [0 для _ в диапазоне (длина (слова))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) для слова в s_words]
для se в s_words:
для i, w в перечислении (слова):
если w == se:
сумка [я] = 1
вернуть numpy.array (сумка)
деф чат():
print("Начните говорить с ботом (чтобы остановиться, введите quit)!")
пока верно:
inp = input("Вы: ")
если inp.lower() == «выйти»:
перерыв
результаты = model.predict([bag_of_words(inp,words)])
results_index = numpy.argmax (результаты)
тег = метки[results_index]
для тг в данных["намерения"]:
если tg['tag'] == тег:
ответы = тг['ответы']
печать (случайный выбор (ответы))
чат()
////////////////////////////////////////////////// ///////////////
Спасибо,
Удачного кодирования!
Lu
Здравствуйте,
Не могли бы вы дать мне представление о процессе, который нужно выполнить в случае, если вы хотите создать чат-бот на питоне, но информация получена из опроса в Excel. Спасибо!