Я работаю над использованием NLTK в python и настраиваю некоторые ответы. в последнем элементе в моих парах я хочу извлечь последнее слово, а затем сопоставить его со временем из словаря часов на основе введенного дня. Я застрял, пытаясь заставить это работать с использованием регулярных выражений и, возможно, иду по неверному пути.
from nltk.chat.util import Chat, reflections
from datetime import datetime, date, time, timezone
time_now = datetime.now().strftime("%I:%M %p")
day_now = datetime.now().strftime("%A").lower()
hours = {
'monday': '8am - 6pm',
'tuesday': '8am - 4pm',
'wednesday': '8am - 5pm',
'thursday': '8am - 7pm',
'friday': '9am - 9pm',
'saturday': '9am - 1pm',
'sunday': 'CLOSED',
}
pairs = [
['my name is (.*)', ['hi %1']],
['what time is it?', ['The {} is {}.'.format("time", time_now)]],
['what are your hours?', ['Empty']],
['what time are you open to today?', ['On {} we are open {}.'.format(day_now, hours.get(day_now, 'Sorry the bank is closed'))]],
['when are you open on (.*)', [hours['%1']]],
]
chat = Chat(pairs, reflections)
chat.converse()