Универсальное эффективное сравнение строк Python для голосового помощника


Я хочу написать своего голосового помощника на питоне.
Преобразование речи в текст решено, но теперь я хочу эффективно сравнивать строки.

Таким образом, код должен быть написан как можно более общим.
Допустим, я хочу приветствовать гостя по имени. Я собираюсь сказать: «Эй, Джарвис, поприветствуй моего друга Ларса». но код для этого не должен быть жестко закодирован для lars и других имен, а для каждого имени. Я думаю, что это было бы возможно с регулярными выражениями, но вот подсказка.

Поскольку я ожидаю, что мое программное обеспечение станет относительно большим,
мне может понадобиться сравнить сотни общих регулярных выражений.
Это слишком много времени для системы, которая должна облегчить мою жизнь (а не заставить меня тратить больше времени).


Есть ли у вас какие-либо советы для меня?

Я думал об использовании наборов, но не знаю, как в них интегрировать регулярные выражения.


person Lars Kristian Dugstad    schedule 16.06.2020    source источник


Ответы (1)


Я думал об использовании наборов, но не знаю, как в них интегрировать регулярные выражения.

Вот как:

import re

s = {'Today','is','my','lucky','day,','because','today','is','Thanksgiving','day!'}
s = ' '.join(s)
print(re.findall(r'[A-Z]',s)) # Find all the capital letters in this example

Выход:

['T', 'T']
person Ann Zen    schedule 16.06.2020