Я использую NLTK для создания чат-бота на Python, но подумываю переписать его для spaCy. Я ищу способ передать моему ИИ несколько заранее составленных предложений, которые можно будет выбирать случайным образом из пар при ответе пользователю.
Например; скажем, бот что-то говорит, и пользователь спрашивает: «Хотели бы вы это обсудить?» Я хочу, чтобы он мог выбирать между «да, пожалуйста!» и «нет, спасибо!» случайным образом.
Мой код:
Код: Выделить всё
import nltk
from nltk.chat.util import Chat, reflections
import random
nltk.download("punkt")
pairs = [
(
r"I am satisfied with my care|quit",
["Bye, take care. See you soon!"]
),
(
r"would you like to discuss that?",
["no Thank you.", ]
),
(
r"hi|hello",
["Hello what is your name?", ]
),
(
r"my name is (.*)",
["Hello %1, how can I help you today?", ]
),
(
r"what is your name?",
["My name is ZeroBot and I'm here to help you.", ]
),
(
r"how are you?",
["I'm doing well, thank you!", ]
),
(
r"sorry (.*)",
["It's alright, no problem.", ]
),
(
r"(.*)",
["Hello %1, how can I help you today?", ]
),
(
r"what are you doing",
["I am talking to you.", ]
),
]
chatbot = Chat(pairs, reflections)
def chat():
print("Hi, I'm ZeroBot. How can I help you today? Type 'I am satisfied with my care' to exit.")
while True:
user_input = input("You: ")
response = chatbot.respond(user_input)
print("ZeroBot:", response)
if user_input.lower == "I am satisfied with my care":
break
if user_input.lower == "would you like to discuss that?":
random_value = random.randint(1, 2)
match random_value:
case 1:
print("yes please!")
case 2:
print("no thank you!")
chat()
Источник: https://stackoverflow.com/questions/781 ... -responses