Также поздно в игре, но проводил некоторые исследования и наткнулся здесь. Как уже упоминали другие, это почти почти невозможно, если бы это было автоматизировано, но если ваш дизайн / требование может включать в некоторых случаях (но не всегда) человеческие взаимодействия, чтобы проверить, является ли это нечестным или нет, вы можете рассмотреть ОД. https://docs.microsoft.com/en-us/azure/cognitive-services/content-moderator/text-moderation-api#profanity мой текущий выбор по нескольким причинам:
- Поддерживает множество локализаций
- Они продолжают обновлять базу данных, поэтому мне не нужно следить за последними сленгами или языками (проблема с обслуживанием)
- Когда существует высокая вероятность (т. Е. 90% или более), вы можете просто прагматично это отрицать
- Вы можете наблюдать за категорией, которая вызывает флаг, который может быть или не быть ненормативной лексикой, и может заставить кого-то просмотреть его, чтобы понять, что он профан или нет.
Для моих нужд это было / основано на общедоступной коммерческой службе (ОК, видеоигры), которую другие пользователи могут / будут видеть имя пользователя, но дизайн требует, чтобы он прошел через фильтр ненормативной лексики, чтобы отклонить оскорбительное имя пользователя. Грустная часть этого вопроса в том, что классическая проблема «clbuttic», скорее всего, возникнет, поскольку имена пользователей, как правило, состоят из одного слова (до N символов), иногда объединяющего несколько слов… Опять же, когнитивная служба Microsoft не будет помечать «Assist» как текст. HasProfanity = true, но может указывать высокую вероятность для одной из категорий.
Когда ОП запрашивает, как насчет "$$", вот результат, когда я пропустил его через фильтр: , как вы можете видеть, он определил, что это не профан, но вероятность того, что это так, отмечается как рекомендации по рассмотрению (взаимодействие человека).
Когда вероятность высока, я могу либо вернуться назад: «Извините, это имя уже занято» (даже если это не так), чтобы оно было менее оскорбительным для лиц, выступающих против цензуры, или что-то еще, если мы не наденем не хотите интегрировать обзор пользователя или вернуть «Ваше имя пользователя было уведомлено в отделе оперативной работы, вы можете подождать, пока ваше имя пользователя будет проверено и одобрено, или выбрать другое имя пользователя». Или что угодно ...
Кстати, цена / цена на эту услугу довольно низкая для моей цели (как часто меняется имя пользователя?), Но, опять же, для OP, возможно, дизайн требует более интенсивных запросов и, возможно, не идеален для оплаты / подписаться на ML-сервисы или не может иметь обзор / взаимодействие с человеком. Все зависит от дизайна ... Но если дизайн отвечает всем требованиям, возможно, это может быть решением OP.
Если интересно, я могу перечислить минусы в комментарии в будущем.