Я не верю, что простой белый список слов обрежет его. Существует немало эвфемизмов для множества вещей, которые белый список никогда не заблокирует (например, «он растет как сорняк» - это хорошо, «он выращивает траву» - это НЕ). И давайте не будем упоминать основные "вы хотели бы встретиться?" что было бы хорошо, если бы встреча произошла в игре, но очень опасно, если бы это произошло из-за нее. Кроме того, существует проблема блокировки редких, чужих или опечаток, которые могут сделать вашу систему чата настолько разочаровывающей, что ее не использовать.
По моему мнению, нет абсолютно никакого способа, которым вы могли бы когда-либо соответствовать безопасности, предлагаемой активным и компетентным модератором-человеком. Конечно, в зависимости от объема трафика чата и любых требований в реальном времени, есть немало практических проблем с использованием людей для этого. Однако, учитывая, что ваше приложение предназначено для детей, умеренность человека может быть вполне приемлемой, несмотря на гораздо более высокую стоимость.
Второй вариант, который очень далек от способностей человека к модерации, - это использовать некоторый статистический фильтр, такой как Bogofilter , который с радостью отсортирует произвольный текст, если вы хорошо его обучите. Черный список также поможет немедленно сократить сообщения со словами, которые маленькие дети не должны (но обычно знают). Вам также понадобится несколько фильтров, которые сокращают сообщения с такими вещами, как номера телефонов, адреса электронной почты и улицы, а также веб-ссылки.
Возможно, метод с наилучшим соотношением эффективности и стоимости будет состоять в том, чтобы использовать модераторов-людей с помощью нескольких статистических фильтров, чтобы лучше использовать свое время. Имейте в виду, однако, что если в классе есть злоумышленники (то есть что-то еще, кроме детей того же возраста), нет способа убедиться, что ничего сомнительного или опасного никогда не произойдет.