Я делаю бота модератора чата. Основная его фишка определение мата в слове и удаление. Я смог сделать и улучшить свой код, однако при тестах возникла проблема которую решить я не в силах. Суть проблемы в том что если мат(допустим слово «тест») пишется с какой-нибудь удвоенной буквы и более («тееест», «тессссст», «теееесссст»), то бот не может определить мат. Прошу вас помочь мне с моей проблемой:) bad_words = «тест|програм|жиз» #это примеры
async def on_message(message): await bot.process_commands(message) msg = message.content.lower() if message.author.guild_permissions.manage_messages is False: if re.search(bad_words, msg): try: await message.delete() except: await message.channel.send(«**Произошла ошибка при удалении! Проверьте наличие прав у бота!**») await message.channel.send(f» сказал плохое слово!»)
Отслеживать
задан 23 окт 2021 в 12:08
27 6 6 бронзовых знаков
Никак. смирись что русские не матреятся, а так разговаривают.
Родная речь понимаешь.
23 окт 2021 в 12:13
Но всё же, некоторым маты не нравятся
23 окт 2021 в 12:14
1 ответ 1
Топ 10 самых дебильных имен
Сортировка: Сброс на вариант по умолчанию
Создадим список запрещенных слов:
ban_words = [‘тест’, ‘текст’]
Добавляем обработчик сообщений:
Внутри функции получаем список отдельных слов сообщения:
msg_words = message.content.split()
Теперь, когда у нас есть список слов, нужно пробежаться циклом for по каждому из них и убрать одинаковые буквы, которые стоят рядом.
Для этого напишем отдельную функцию simplify_word(word) , которая будет принимать одно слово и пробегаясь циклом for по его буквам оставлять только одну из одинаковых, рядом стоящих:
# функция упрощения слова def simplify_word(word): # последняя рассмотренная буква из слова last_letter = » # упрощенное слово, без повторяющихся рядом стоящих букв result = » # пробегаемся по каждой букве слова for letter in word: # если текущая буква НЕ такая же как и предыдущая, то записываем ее в упрощенное слово if letter != last_letter: last_letter = letter result += letter return result
Теперь вернемся к обработчику сообщений и обработаем каждое слово из сообщения через новую функцию:
# упрощаем каждое слово, убирая повторяющиеся, стоящие рядом буквы for i in range(len(msg_words)): msg_words[i] = simplify_word(msg_words[i])
Теперь осталось только проверить все, уже обработанные слова сообщения на наличие в списке ban_words :
# для каждого слова првоеряем, содержится ли оно в запрещенном списке for word in msg_words: if word in ban_words: try: await message.delete() except: print(‘Ошибка при удалении сообщения’) await message.channel.send(f’ **написал запрещенное слово:** **’) return
Можем для примера вывести список измененных слов и посмотреть на результат:
# вывод упрощенных слов await message.channel.send(‘ ‘.join(msg_words))
Песня про всех Сансов
Полный код:
Не забудьте указать токен!
Источник: ru.stackoverflow.com
Список стоп-слов, который должен быть у каждого администратора чатов
Подали мне в соседнем мессенджере ТамТам идею для небольшой, но крайне полезной публикации. Мол тяжело бывает админам различных чатов и конференций модерировать сообщения на предмет наличия обсценной лексики, или простыми словами мата, нецензурщины.
Кибер Мастера
Сообщество фрилансеров и предпринимателей Помогаем монетизировать знания Статьи, кейсы как заработать в интернете, соцсетях, мессенджерах More posts by Кибер Мастера.
Кибер Мастера
7 авг. 2020 • 1 min read
Подали мне в соседнем мессенджере ТамТам идею для небольшой, но крайне полезной публикации. Мол тяжело бывает админам различных чатов и конференций модерировать сообщения на предмет наличия обсценной лексики, или простыми словами мата, нецензурщины. «Океюшки» — сказал я, — «ведь у нас в телеграм-сообществах на страже давно стоят автоматические боты-модераторы и им давно скормлены списки стоп-слов».
Помочь с такой насущной проблемой дело житейское, поэтому вот вам файл stopwords.txt со списком крайне возмутительных и оскорбительных слов
Список, конечно же, содержит не 100% всех матов и ругательств, но все часто употребляемые и очевидные. Вы можете его дополнять если появляются новые слова или употребляются конкретно в вашем сообществе. Также, кроме матов, рекомендую добавить популярные спам-слова, типа «куплю», «продам», «накрутка», «ставки», «заработать» и т.п., которые используют спамеры в своих рассылках по чатам.
Кибер Мастера там, где вам удобно: Telegram ▫️ Дзен ▫️ Я.Кью ▫️ VK ▫️ VC ▫️ YouTube ▫️ Партнеркин ▫️ Pikabu ▫️ TenChat ▫️ ТамТам
Subscribe to Кибер Мастера
Get the latest posts delivered right to your inbox
Источник: cybermasters.site
Запретные слова на Twitch в 2023 году
Twitch известен своими строгими правилами к определенным выражениям и словам, поэтому если вам нужен полный список запрещенных слов на твиче без цензуры, их есть у меня — произнесенное или написанное запрещенное слово из этого списка, даже без оскорбительного контекста, может привести к бану на твиче. Я уже публиковал такие подборки в 2021 и в 2022 годах, и стоит заметить, что новых банвордов в 2023 году пока не появлялось, однако мы продолжаем держать руку на пульсе.