Эффективно удаляя непослушные слова из комментариев пользователей - PullRequest
2 голосов
/ 26 октября 2010

У меня есть приложение ASP.NET, которое принимает комментарии пользователей и их в базе данных SQL.Я хочу удостовериться, что я отсеял любые "непослушные" слова, чтобы я мог сохранить свое приложение респектабельнымПроблема в том, что я нахожу там много этих слов.;>

Мой вопрос: каков наиболее эффективный способ сделать эту обработку?Должен ли я иметь таблицу в SQL и написать сохраненный процесс, который работает?Должен ли я сделать это с C # и Regex в памяти на веб-сервере?Есть ли другие варианты?Кто-нибудь еще успешно делал этот вид сканирования текста в масштабе?Если у, что сработало?

Ответы [ 4 ]

9 голосов
/ 26 октября 2010

Это бесполезная задача. Если люди хотят ругаться, они начнут печатать такие вещи, как f uck и sh*t.

Там нет замены эффективной модерации. Что-нибудь еще может оставить вас с clbuttic ошибками на вашей странице

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

2 голосов
/ 26 октября 2010

Проблема Сканторпа

Нужно смущаться, чтобы попытаться решить это в коде.

0 голосов
/ 26 октября 2010

Здесь нужно учесть несколько вещей:

  • Хотите ли вы добавить или удалить слова из этого черного списка позже? В этом случае имеет смысл сделать это только перед тем, как показывать сообщение, но сохранить исходное сообщение.
  • Хотите ли вы иметь копию сообщения позже (например, по юридическим причинам или в службе поддержки)? Тогда также имеет смысл сохранить сообщение без изменений в базе данных.

Так что я бы сохранил сообщение в базе данных и проанализировал его только перед его рендерингом. Для меня это выглядит как наиболее эффективный способ сделать это:

  1. Сохраните черный список в индексированном столбце (строчные буквы) в базе данных и возвращайте комментарии через хранимую процедуру, которая фильтрует его
  2. Храните черный список в нижнем регистре в некоторой структуре данных, которая обеспечивает эффективный доступ (например, словарь) в памяти на среднем уровне.

В обоих случаях вы просто просматриваете каждый комментарий и фильтруете его. Последний способ более прост в реализации, но он означает, что вам придется хранить список в памяти, который теряет смысл, когда у вас очень большой черный список.

(На самом деле я не вижу смысла в использовании регулярных выражений.)

0 голосов
/ 26 октября 2010

Уже есть несколько модулей Perl, чтобы сделать все это за вас.

https://metacpan.org/pod/Regexp::Common::profanity

https://metacpan.org/pod/Regexp::Profanity::US

https://metacpan.org/pod/Plagger::Plugin::Filter::Profanity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...