Как сделать обнаружение запрещенных слов в чате? Telebot, Python

Помогите пожалуйста реализовать фильтрацию по словам в чате. Я написал такой код, но столкнулся со следующими проблемами: Если запретить писать слово "Пример1", то нельзя будет писать и слово "Пример", то есть цифра 1 на конце вроде как учитывается, а вроде как и нет. Буду благодарен если кто-то сможет предложить более удачную идею для решения моей задачи.

message_words = message.text.split()
for word in message_words:
    if word.lower() not in DB.blacklisted_words_get(message.chat.id):
        pass
    else:
        bot.delete_message(message.chat.id, message.id)
        bot.send_message(message.chat.id, f'<a href="tg://user?id={user_id}">{user_name}</a>, '
        'Вы использовали запрещенное слово!', parse_mode='html')

Ответы (2 шт):

Автор решения: Артем

Советую тебе создать массив запретных слов и уже каждое слово из СООБЩЕНИЯ сравнивать с каждым словом из МАССИВА. Ибо Пример содержится в строке Пример1, а Пример1 в Пример уже не содержится, понимаешь?:)

И сравнивать не с помощью if <Пример1> in <Массив слов сообщения>, а с помощью if <Пример1> == <Пример>, точно не прогадаешь. Хотя и так и так может сработать, главное именно массивы держать.

→ Ссылка
Автор решения: Алхимик

у вас задом наперед построена логика

попробуйте такой код:


restricted_words=["слово1","слово2"] и так далее полный набор

потом если надо удалить все сообщение то можно сделать так:


for restricted_word in restricted_words:
    if len(message)>len(message.replace(restricted_word,""):
       message="Сообщение удалено"
       break

если надо заменять отдельные слова то можно сделать так же:


for restricted_word in restricted_words:
    message=message.replace(restricted_word,"-_-")

ну и потом возвращаем message обратно на вывод.

Проблема очевидна - всякие реконструкции через латиницу или 1337 стайл оскорбления все еще будут проходить. А что бы не проходили надо написать небольшой лингво-движок, который и "потреблять" не забанит, "xy*" тоже распознает. Но это совсем другая история.

→ Ссылка