Проверка ненормативной лексики на промокоды
У меня есть немного необычный вопрос, связанный с ненормативной лексикой.
Теперь мы привыкли иметь дело с фильтрацией ненормативной лексики пользовательского контента - любой метод несовершенен, но такие продукты, как CleanSpeak и WebPurify, справляются достаточно хорошо.
Однако проблема, с которой мы столкнулись на данный момент, заключается в том, что мы создаем движок для проведения соревнований на основе рекламных кодов, который будет использоваться на международном уровне. Мы могли бы убедиться, что ни один из этих кодов не является нечестным на латиноамериканском испанском или малайском (по крайней мере, в первом случае), чтобы убедиться, что мы не отправляем код, эквивалентный FUCK23
или же PEN15
или что-то.
Мы пытались поискать в Google и спрашивать людей, которых мы знаем, но мы не можем найти легкий способ получить es-419
или ms
ненормативная лексика для фильтрации кодов против. Поскольку в каждой локали буквально миллионы кодов, мы предпочли бы выполнить автономную проверку, а не использовать API для каждого кода (что было бы дорого как с точки зрения пропускной способности, так и платы за использование).
Я знаю, что это немного, но кто-нибудь знает хороший источник списков ненормативной лексики на разных языках?
#disclaim
Мы знаем, что никакая фильтрация ненормативной лексики не идеальна, что это бесполезно с пользовательским контентом, и мы прочитали SO #273516: Как реализовать хороший фильтр ненормативной лексики? - это не то, что мы просим.
2 ответа
У меня были те же мысли. в попытке сгенерировать 6 кодов символов для проекта, который я делаю. Я решил уменьшить вероятность появления явных кодов porfain. Поэтому я удалил из моего начального кода 36-го поколения гласные, которые я нашел во всех "плохих" словах. Оставляя меня с чем-то более похожим на систему с базовым 28, которая не включает a,e,i,o,u, 1,0. единица и ноль были удалены, чтобы уменьшить путаницу между этими символами в некоторых шрифтах с I,L,O. До сих пор я не видел, как генерируется "profain" код. Хотя база 28 имеет 1 миллиард уникальных комбинаций. я не могу поручиться за другие языки, и даже не учел это...
Создание или поиск списков на других языках чрезвычайно трудоемкий и сложный процесс (поверьте мне, мы создали многие из них в Inversoft). Вы могли бы лучше настроить генераторы кода (насколько я могу судить, ваш код генерирует рекламные коды, а не людей).
Лучший способ настроить генератор - убедиться, что коды не могут легко составлять слова на основе общего использования согласных и гласных в большинстве европейских языков. Вещи становятся немного рискованными на польском и других языках, но обычно это работает.
Как правило, за большинством кодов, начинающихся с гласного, следует другой гласный или не присоединяющийся согласный (например, "q" без "u"). Если код начинается с согласного, то следующим символом является тот же самый согласный или тот, который имеет низкую вероятность использования. Например, если вы начинаете с "s", то добавление "g" является хорошим выбором.
Вы также можете использовать викисловарь или другие подобные источники (например, файлы словаря Linux) для построения статистического подхода к этому. Извлекая вероятность того, что символы будут рядом друг с другом, вы сможете генерировать коды с хорошей точностью, чтобы никогда не быть словами на любом языке.
Однако, если я неправильно понял ваш вопрос, а вы не генерируете коды программно, вы можете полностью игнорировать мой ответ.:)