Проверка ненормативной лексики на промокоды - PullRequest
1 голос
/ 13 января 2012

У меня есть немного необычный вопрос, связанный с ненормативной лексикой.

Теперь мы привыкли иметь дело с фильтрацией ненормативной лексики пользовательского контента - любой метод несовершенен, но такие продукты, как CleanSpeak и WebPurify выполняют достаточно хорошую работу.

Однако проблема, с которой мы столкнулись на данный момент, заключается в том, что мы создаем движок для проведения соревнований на основе рекламных кодов,это будет использоваться на международном уровне.Мы могли бы убедиться, что ни один из этих кодов не является нечестным на латиноамериканском испанском или малайском языке (по крайней мере, в первом случае), чтобы убедиться, что мы не отправляем код, эквивалентный FUCK23 или PEN15 или чему-то еще.

Мы пытались поискать в Google и спрашивать знакомых, но мы не можем найти простой способ получить список ненормативной лексики es-419 или ms для фильтрации кодов.Поскольку в каждой локали буквально миллионы кодов, мы предпочли бы выполнить автономную проверку, а не использовать API для каждого кода (что было бы дорого как с точки зрения пропускной способности, так и платы за использование).

Я знаю, что этоНемного далеко, но кто-нибудь знает хороший источник для списков ненормативной лексики на разных языках?

#disclaim: Мы знаем, что никакая фильтрация ненормативной лексики не идеальна, что это бесполезно с пользовательским контентоми мы прочитали SO # 273516: Как реализовать хороший фильтр ненормативной лексики? - это не то, что мы просим.

Ответы [ 2 ]

1 голос
/ 26 апреля 2012

У меня были такие же мысли. в попытке сгенерировать 6 кодов символов для проекта, который я делаю. Я решил уменьшить вероятность появления явных кодов porfain. Поэтому я удалил из моего начального кода 36-го поколения гласные, которые я нашел в столько «плохих» слов, сколько мог придумать. Оставляя меня с чем-то более похожим на базовую систему 28, которая не включает a, e, i, o, u, 1,0. один и ноль были удалены, чтобы уменьшить путаницу между этими символами в некоторых шрифтах с I, L, O's до сих пор я не видел, чтобы «profain» код порождался. Хотя база 28 имеет 1 миллиард уникальных комбинаций я не могу поручиться за другие языки и даже не учел это ...

1 голос
/ 17 января 2012

Создание или поиск списков на других языках чрезвычайно трудоемкий и сложный процесс (поверьте мне, мы создали многие из них в Inversoft). Возможно, вместо этого вам лучше настроить генераторы кода (из того, что я могу сказать, ваш код генерирует рекламные коды, а не людей).

Лучший способ настроить генератор - убедиться, что коды не могут легко образовывать слова на основе общего использования согласных и гласных в большинстве европейских языков. Вещи становятся немного рискованными на польском и других языках, но обычно это работает.

Как правило, за большинством кодов, начинающихся с гласного, следует другой гласный или не присоединяющийся согласный (например, «q» без «u»). Если код начинается с согласного, то следующим символом является тот же самый согласный или тот, который имеет низкую вероятность использования. Например, если вы начинаете с «s», то добавление «g» является хорошим выбором.

Вы также можете использовать викисловарь или другие подобные источники (например, файлы словаря Linux) для построения статистического подхода к этому. Извлекая вероятность того, что символы будут рядом друг с другом, вы сможете создавать коды с хорошей точностью, чтобы никогда не быть словами на любом языке.

Однако, если я неправильно понял ваш вопрос, а вы не генерируете коды программно, вы можете полностью игнорировать мой ответ. :)

...