Регистрация | Вход
import nltkfrom nltk.chat.util import Chat, reflectionspairs = [ ("мой муж не любит меня", ["Почему вы думаете, что ваш муж не любит вас?", "Вы думаете, что есть какие-то конкретные проблемы в вашем браке?"]), ("я чувствую себя очень одиноко", ["Почему вы чувствуете себя одиноко?", "У вас есть друзья или семья, которые могут вам помочь?", "Может быть, вы должны попробовать заняться каким-то хобби?"]), ("как я могу выйти замуж?", ["Вам нужно найти подходящего партнера. Может быть, вам стоит зарегистрироваться на сайте знакомств?"]), ("какой смысл жизни?", ["Это очень философский вопрос. Каждый должен сам найти смысл своей жизни.", "Может быть, вам стоит задуматься о своих ценностях и жизненных целях?"]), ("погода на завтра", ["Извините, я не знаю, какая будет погода на завтра.", "Вы можете проверить прогноз погоды в Интернете."]), ("пока", ["До свидания!", "Хорошего дня!"])]chatbot = Chat(pairs, reflections)chatbot.converse()
import tensorflow as tfimport numpy as npimport random# Определяем данные обученияquestions = [ "Как тебя зовут?", "Как дела?", "Какой сегодня день?", "Какая погода?", "Какой твой любимый цвет?",]answers = [ "Меня зовут Бот.", "У меня всё хорошо, спасибо!", "Сегодня понедельник.", "Сегодня довольно холодно.", "Мой любимый цвет - синий.",]# Создаем словарь для хранения вопросов и ответовqa_dict = dict(zip(questions, answers))# Создаем нейронную сетьmodel = tf.keras.Sequential([ tf.keras.layers.Embedding(len(questions), 32), tf.keras.layers.GlobalAveragePooling1D(), tf.keras.layers.Dense(16, activation='relu'), tf.keras.layers.Dense(len(answers), activation='softmax')])# Компилируем модельmodel.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])# Обучаем модельmodel.fit(np.arange(len(questions)), np.arange(len(answers)), epochs=100)# Запускаем чат-ботwhile True: question = input("Вы: ") if question.lower() in qa_dict: print("Бот:", qa_dict[question.lower()]) else: prediction = model.predict(np.array([questions.index(question.lower())])) answer_index = np.argmax(prediction) print("Бот:", answers[answer_index])