В прошлом году я работал над рождественским проектом, который позволял клиентам отправлять друг другу электронные письма с полем из 256 символов в произвольном тексте для их рождественского запроса. Проект работал с поиском (очень большой) базы данных продуктов для предложения продуктов, соответствующих текстовому полю, но предлагал вариант свободного текста для тех клиентов, которые не смогли найти данный продукт.
Одной из очевидных проблем была возможность для клиентов отправлять довольно недвусмысленные запросы некоторым ничего не подозревающим клиентам, когда брендинг компании находился рядом.
В конце концов, проект не был запущен по разным причинам, причем ненормативная лексика была одной.
Однако я вернулся к размышлениям о проекте и поинтересовался, какие виды проверки могут быть использованы здесь. Мне известно о clbuttic , который, как я знаю, является стандартным ответом на любой вопрос такого рода.
Решения, которые я рассмотрел, были:
- Запустите его через что-то вроде WebPurify
- Использовать MechanicalTurk
- Напишите шаблон регулярного выражения, который ищет слово в списке. Более сложная версия этого также учитывает множественное число и прошедшие времена слова.
- Напишите массив подозрительных слов и оцените каждое. Если представление превышает оценку, проверка не проходит.
Итак, есть два вопроса :
- Если отправка не удалась, как вы ее обрабатываете с точки зрения пользовательского интерфейса?
- Каковы плюсы и минусы этих решений или какие-либо другие, которые вы можете предложить?
NB - ответы типа "фильтры ненормативной лексики - зло" не имеют значения. В этой полу-гипотетической ситуации я не решил внедрить фильтр ненормативной лексики, и мне не дали выбрать, применять его или нет. Мне просто нужно приложить все усилия с моими навыками программирования (которые должны быть в стеке LAMP, если это возможно).