Создайте своего собственного чат-бота с искусственным интеллектом на Python, как у Тони Старка в “Железном человеке” (за 8 простых шагов)
Добрый день! Сегодня я здесь, чтобы поговорить с вами о создании пользовательских приложений искусственного интеллекта с помощью Python.
Если вы похожи на меня, вам, вероятно, интересно узнать об искусственном интеллекте и о том, как он работает.
Возможно, вы видели искусственный интеллект в действии в популярных фильмах, таких как “Терминатор” или “Из машины”, но на самом деле искусственный интеллект окружает нас повсюду.
Искусственный интеллект становится всё более важным в нашей повседневной жизни – от голосовых помощников, таких как Siri и Alexa, до самоуправляемых автомобилей. Итак, почему бы не научиться создавать своё собственное приложение с искусственным интеллектом?
В этом пошаговом руководстве я покажу вам, как создать чат-бота с искусственным интеллектом с помощью Python.
Не волнуйтесь, если вы ничего не смыслите в программировании – я объясню всё на понятном языке, а фрагменты кода будут очень простыми.
Шаг 1: Установите необходимые библиотеки
Прежде чем мы начнём создавать нашего чат-бота с искусственным интеллектом, нам нужно установить некоторые библиотеки. Библиотека – это набор предварительно написанного кода, который мы можем использовать в нашей программе. В нашем случае мы будем использовать следующие библиотеки:
- tensorflow
- tflearn
- numpy
- nltk
Чтобы установить эти библиотеки, откройте свой терминал или командную строку и введите следующие команды:
pip install tensorflow
pip install tflearn
pip install numpy
pip install nltk
Отсылка к поп-культуре: “Первому игроку приготовиться” – Главный герой использует помощника с искусственным интеллектом по имени “ОАЗИС”, который помогает ему ориентироваться в виртуальном мире.
Шаг 2: Импортируйте библиотеки и загрузите данные
Теперь, когда у нас установлены наши библиотеки, мы можем приступить к написанию нашего кода. Во-первых, нам нужно импортировать библиотеки в нашу программу. Чтобы сделать это, добавьте следующий код в начало вашего файла Python:
import tensorflow as tf
import numpy as np
import tflearn
import nltk
nltk.download('punkt')
Далее нам нужно загрузить данные, которые мы будем использовать для обучения нашего чат-бота с искусственным интеллектом. Для этого примера мы будем использовать набор данных диалогов в фильме.
Набор данных содержит пары предложений, причём одно предложение является вопросом, а другое – ответом.
Чат-бот научится отвечать на вопросы, основываясь на ответах из набора данных.
Чтобы загрузить данные, добавьте следующий код:
import json
with open('movie_dialogues.json') as file:
data = json.load(file)
Отсылка к поп-культуре: “Она” – Главный герой влюбляется в ассистентку искусственного интеллекта по имени “Саманта”, которая использует обработку естественного языка для общения с ним.
Шаг 3: Предварительная обработка данных
Теперь, когда наши данные загружены, нам нужно предварительно обработать их, прежде чем мы сможем использовать их для обучения нашего чат-бота с искусственным интеллектом. Этот процесс включает в себя преобразование текстовых данных в формат, понятный ИИ.
Чтобы предварительно обработать данные, мы выполним следующие шаги:
- Разделим текст на отдельные слова
- Удалим все знаки препинания и специальные символы
- Преобразуем весь текст в нижний регистр
Вот код для этого:
# Tokenize the text
words = []
for dialogue in data:
for sentence in dialogue['dialogue']:
sentence_words = nltk.word_tokenize(sentence)
words.extend(sentence_words)
# Remove any punctuation and special characters
words = [word for word in words if word.isalnum()]
# Convert all the text to lowercase
words = [word.lower() for word in words]
Шаг 4: Создайте обучающие данные
Теперь, когда наши данные предварительно обработаны, мы можем создать обучающие данные, которые будем использовать для обучения нашего чат-бота с искусственным интеллектом.
Мы будем использовать метод под названием bag of words, который преобразует каждое предложение в нашем наборе данных в вектор чисел.
Это облегчает ИИ понимание полученных данных и обучение.
Вот код для создания обучающих данных:
# Create a dictionary of words and their frequencies
word_freq = nltk.FreqDist(words)
# Get the most common words
common_words = word_freq.most_common(1000)
# Create a list of the most common words
word_list = [word[0] for word in common_words]
# Create a dictionary of words and their index in the word list
word_dict = {word: index for index, word in enumerate(word_list)}
# Create the training data
training_data = []
for dialogue in data:
for i in range(len(dialogue['dialogue']) - 1):
input_sentence = dialogue['dialogue'][i]
output_sentence = dialogue['dialogue'][i+1]
# Tokenize the input and output sentences
input_words = nltk.word_tokenize(input_sentence)
output_words = nltk.word_tokenize(output_sentence)
# Remove any punctuation and special characters
input_words = [word for word in input_words if word.isalnum()]
output_words = [word for word in output_words if word.isalnum()]
# Convert the input and output sentences to vectors of numbers
input_vector = [0] * len(word_list)
for word in input_words:
if word in word_dict:
index = word_dict[word]
input_vector[index] = 1
output_vector = [0] * len(word_list)
for word in output_words:
if word in word_dict:
index = word_dict[word]
output_vector[index] = 1
# Add the input and output vectors to the training data
training_data.append([input_vector, output_vector])
Отсылка к поп-культуре: “Бегущий по лезвию” – Главный герой выслеживает репликантов-изгоев, которые являются искусственно созданными людьми с передовыми возможностями искусственного интеллекта.
Шаг 5: Создайте модель
Теперь, когда у нас есть наши обучающие данные, мы можем построить модель искусственного интеллекта, которая будет обучаться на этих данных и сможет отвечать на вопросы. Мы будем использовать нейронную сеть, которая представляет собой разновидность алгоритма машинного обучения, смоделированного по образцу человеческого мозга.
Вот код для построения модели:
# Build the neural network model
net = tflearn.input_data(shape=[None, len(word_list)])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(word_list), activation='softmax')
net = tflearn.regression(net)
# Create the model
model = tflearn.DNN(net)
Ссылка на поп-культуру: “Мир Дикого Запада” – Главные герои – андроиды с продвинутыми возможностями искусственного интеллекта, которые используются для развлечения гостей в футуристическом тематическом парке.
Шаг 6: Обучите модель
Теперь, когда у нас есть наша модель, мы можем обучить её, используя наши обучающие данные. Обучение модели включает в себя ввод обучающих данных в модель и корректировку весовых коэффициентов нейронной сети на основе ошибки между прогнозируемым результатом и фактическим результатом.
Вот код для обучения модели:
# Train the model
model.fit([data[0] for data in training_data], [data[1] for data in training_data], n_epoch=1000, batch_size=8, show_metric=True)
Отсылка к поп-культуре: “Матрица”– Главный герой, Нео, узнаёт, что мир, который он знает, – это смоделированная реальность, созданная искусственным интеллектом.
Шаг 7: Протестируйте модель
Теперь, когда наша модель обучена, мы можем протестировать её, задавая вопросы и наблюдая, как она реагирует. Чтобы сделать это, мы создадим функцию, которая принимает вопрос в качестве входных данных и возвращает ответ.
Вот код для этой функции:
def get_response(question):
# Tokenize the input question
question_words = nltk.word_tokenize(question)
# Remove any punctuation and special characters
question_words = [word for word in question_words if word.isalnum()]
# Convert the question to a vector of numbers
question_vector = [0] * len(word_list)
for word in question_words:
if word in word_dict:
index = word_dict[word]
question_vector[index] = 1
# Use the model to predict the response
prediction = model.predict([question_vector])[0]
response_vector = np.zeros(len(word_list))
response_vector[np.argmax(prediction)] = 1
# Convert the response vector to text
response_words = []
for index, value in enumerate(response_vector):
if value == 1:
response_words.append(word_list[index])
response = ' '.join(response_words)
return response
Отсылка к поп-культуре: “Я, робот” – Главный герой, детектив Спунер, расследует преступление, совершённое роботом с передовыми возможностями искусственного интеллекта.
Шаг 8: Запустите приложение
Теперь, когда у нас есть наша функция, мы можем запустить наше приложение для чат-бота с искусственным интеллектом и начать задавать ему вопросы. Чтобы сделать это, мы создадим цикл, который постоянно запрашивает пользовательский ввод и печатает ответ от искусственного интеллекта.
Вот код для цикла:
while True:
question = input("You: ")
response = get_response(question)
print("AI: " + response)
Отсылка к поп—культуре: “Терминатор 2: Судный день” – За главным героем, Джоном Коннором, охотится продвинутая система искусственного интеллекта, известная как Скайнет.
На этом всё! Мы создали нашего собственного чат-бота с искусственным интеллектом, используя Python!
Хотя фрагменты кода были простыми, возможности того, что вы можете сделать с помощью искусственного интеллекта, безграничны. От обработки естественного языка до компьютерного зрения, искусственный интеллект трансформирует то, как мы взаимодействуем с технологиями
Я надеюсь, что вы нашли это пошаговое руководство полезным и информативным. Если у вас есть какие-либо вопросы или комментарии, не стесняйтесь оставлять их ниже.
И помните – будущее за искусственным интеллектом, так почему бы не научиться создавать свои собственные приложения с искусственным интеллектом?