Шаблон дизайна для блокировки нежелательного контента

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

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

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

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

Я рассмотрел следующие решения:

  • Выполнить что-то вроде WebPurify
  • Используйте MechanicalTurk
  • Напишите шаблон регулярного выражения, который ищет слово в списке. В более сложной версии этого слова также учитывались бы множественные числа и прошедшие времена.
  • Напишите массив подозрительных слов, и забей каждый. Если отправка превышает балл, проверка не удалась.

Итак, есть два вопроса :

  1. Если отправка не прошла, как вы справитесь с этим с точки зрения пользовательского интерфейса?
  2. Что такое плюсы и минусы этих решений или любые другие, которые вы можете предложить?

NB - ответы типа «фильтры ненормативной лексики - зло» неуместны. В этой полугипотетической ситуации я не решил реализовать фильтр ненормативной лексики, и мне не было предоставлено право выбора, применять его или нет. Мне просто нужно сделать все, что в моих силах, с моими навыками программирования (которые должны быть в стеке LAMP, если это возможно).

6
задан Community 23 May 2017 в 11:55
поделиться