Форум программистов, компьютерный форум, киберфорум
DjSens
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 2.

АнтиМат 1.0 - проверяем текст на оскорбительность (Исходники прилагаются)

Запись от DjSens размещена 12.10.2021 в 22:03
Обновил(-а) ildwine 13.10.2021 в 09:24 (Скриншот убран под спойлер)

Чтобы облегчить себе модерацию сообщений в моём будущем проекте, я написал алгоритм проверки текста на оскорбительность.
С огромным чёрным списком и со списком слов-исключений "белый список" (чтоб не реагировало на слова типа "команда" или "пЛОХой").

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

У меня написано на Паскале (Lazarus). Исходники и EXE прилагаются. + см. скриншот

Сначала идёт процедура "Sorting":
1. перевод русских плохих слов в транслит по таблице Translit_2
2. потом добавляются плохие слова которые уже на транслите набраны в списке плохих слов
3. итоговый массив сортируется по убыванию длины слова, при этом записывается флаг наличия букв BPYHCX в слове
4. если длинное плохое слово содержит в себе короткое плохое слово - записывается номер короткого, чтобы не искать в тексте длинное если ранее уже искали короткое и не нашли
5. Белый список тоже переводим в транслит по таблице Translit_2

Все эти отсортированные данные можно экспортировать кнопкой экспорт.

Потом идёт собственно поиск плохих слов в тексте. Для этого текст сначала переводим в транслит по таблице Translit_2.
Алгоритм ищет плохие слова, вычисляет процент оскорбительности.
Переменная "Интервал" - для поиска плохих слов написанных с пробелами или другими небуквенными пропусками, типа "Д_._У_._Р_._А....К", т.е. задаёт величину максимального такого интервала между буквами при поиске.

StopString:=abcdefghijklmnopqrstuvwxyz1234567890 - это символы, которые останавливают поиск плохого слова написанного с большими интервалами, т.е. слово "DaUaRaAaK" уже не будет найдено

Найденные плохие слова потом проверяются по белому списку

Выложил ещё на ГитХаб - https://github.com/DjSens/AntiMat

Пользуйтесь, тестируйте, критикуйте, предлагайте улучшения, предлагайте пополнения в чёрный и белый список.
ВНИМАНИЕ! НЕНОРМАТИВНАЯ ЛЕКСИКА!
Нажмите на изображение для увеличения
Название: AntiMat_Editor_Screenshot_1.png
Просмотров: 179
Размер:	92.4 Кб
ID:	7173
Вложения
Тип файла: zip Antimat.zip (1.09 Мб, 64 просмотров)
Размещено в Без категории
Показов 869 Комментарии 7
Всего комментариев 7
Комментарии
  1. Старый комментарий
    просьба - откомпилируйте плиз кто-нибудь под Linux, хочу дать знакомому человеку потестировать, а у него винды нету
    Запись от DjSens размещена 12.10.2021 в 22:26 DjSens вне форума
  2. Старый комментарий
    1.
    Не совсем понятно, что вы хотите сделать. Ну например слово "мандарин". Оно к какой категории относится?

    2.
    Или вот есть слово "фашист". Вроде бы оно не относится к мату. Но это как сказать. Или кого обозвать... В общем алгоритм программы не так прост, как вы его себе представляете.

    3.
    И наконец есть слова/фразы которые сами по себе неприятны. Например слово "Смерть". Вам оно нравится? Мне нет!!! Вот включите его в свой список матерных слов!
    Запись от wer1 размещена 13.10.2021 в 09:18 wer1 вне форума
  3. Старый комментарий
    Почему бы вам не пойти в своих поисках дальше. Вот вы нашли лёгкий путь "проверка текста на оскорбительность". А ведь текст можно и нужно проверять на наличие интеллекта, на логику, на сообразительность, на нестандартность мышления... и так далее и тому подобное. Потомки вам за это Спасибо скажут!
    Запись от wer1 размещена 13.10.2021 в 09:27 wer1 вне форума
  4. Старый комментарий
    Аватар для DrType
    Судя по описанию, полезный инструмент. И подход тщательный — без поверхностных решений.
    Запись от DrType размещена 13.10.2021 в 12:09 DrType вне форума
  5. Старый комментарий
    Аватар для Avazart
    Цитата:
    просьба - откомпилируйте плиз кто-нибудь под Linux, хочу дать знакомому человеку потестировать, а у него винды нету
    У него нет Windows зато есть Linux и синдром Туретта !? ...

    А если серьезно я ожидал в исходном коде увидеть алгоритм "Расстояния Левенштейна"

    https://habr.com/ru/sandbox/145868/
    Запись от Avazart размещена 13.10.2021 в 12:33 Avazart вне форума
    Обновил(-а) Avazart 13.10.2021 в 13:35
  6. Старый комментарий
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    А если серьезно я ожидал в исходном коде увидеть алгоритм "Расстояния Левенштейна"

    https://habr.com/ru/sandbox/145868/
    Это не тот случай. У нас народ грамотный и вполне обходится без всяких нехороших слов.
    Запись от wer1 размещена 13.10.2021 в 15:09 wer1 вне форума
  7. Старый комментарий
    Аватар для Avazart
    Вопрос сложности. Писать прямо или изощрятся.

    К тому же кто знает что за алгоритмы к примеру на сайте? Кто знает на что сработает программа и обратит внимание модераторов.
    Запись от Avazart размещена 13.10.2021 в 18:42 Avazart вне форума
    Обновил(-а) Avazart 14.10.2021 в 12:46
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.