У меня есть словарь ключей и значений (массивно усеченный для удобства чтения):
responsePolarities = {'yes':0.95, 'hell yes':0.99, 'no':-0.95, 'hell no':-0.99, 'okay':0.70}
Я проверяю, есть ли какой-либо ключ в строке, переданной моей функции:
for key, value in responsePolarities.items():
if key in string:
return value
Проблема в том, что если в переданной строке есть слово типа «знать», функция видит «нет» в слове «знает» и возвращает -0,95.
Я не могу добавить пробелы вокруг клавиши «нет», потому что это может быть единственным ответом.
Как я могу заставить функцию видеть «нет» как «нет», но не «знать»?Правильно ли я считаю, что это, вероятно, будет работа RegExp, или я упускаю что-то более простое?
Я думал о том, чтобы разбить мою переданную строку на отдельные слова, но потом я не смог 't проверить наличие нескольких словосочетаний, которые изменяют полярность ответа (например, «нет» или «нет») ...