Как извлечь слово из строки и использовать в качестве переменной? - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над использованием 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()
...