Фильтр ненормативной лексики для MMO-чата


32

Мы разрабатываем MMO с использованием Smartfox Server. Целевая аудитория - дети от 7 до 12 лет.

В этой MMO есть опция глобального чата.
Все, что пользователь вводит в текстовое поле, отображается рядом с аватаром пользователя после его ввода.

Мы хотели бы отфильтровать ненормативную лексику / ненормативную лексику из этого чата.
Мы могли бы захватить чат и прочитать текст. Проблема в том, чтобы получить сам список ненормативной лексики.

Наши вопросы

  1. Где взять полный список всех ненормативной лексики?
  2. Какой метод принят в аналогичном сценарии, чтобы отфильтровать их?


7
@ yetanothercoder, моя точка зрения, фильтрация - это сложная проблема . Например, будут ли в вашей игре какие-либо события в субботу? Смогут ли игроки напечатать слово «суббота» (обратите внимание на средние четыре буквы) в своих чатах? (И не знаю, почему понизить голос - это не плохой вопрос , но не может быть простого ответа).
Циклоп

6
И это становится еще сложнее, когда в игру вступает больше языков. Например: Starcraft 2 удаляет «weniger» из чата, что по-немецки означает «меньше» ...
bummzack

4
Еще одна проблема, с которой я часто сталкивался, когда был молодым и играл в отфильтрованные MMO, заключалась в том, что они основаны на английском языке. Поэтому, если бы я говорил по-французски, некоторые приличные французские слова были бы подвергнуты цензуре, потому что они были похожи на английские проклятия, и в любом случае, я все еще мог проклинать по-французски все, что хотел.
Xeon06

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

Ответы:


46

Не.

Фильтры не работают. По крайней мере, только фильтры не работают. Белые, черные списки, это не имеет значения. Ничто из этого не помешает детям беспокоить друг друга. Единственный способ сделать это - не фильтровать чат, а предоставить большие строительные блоки для предложений. Например, ребенок может выбрать «Хотите ли вы ...», и варианты «перейти к ...» и «обменять ...» будут выбраны. Выбор «перейти к ...» вызовет список мест в игре.

Дисней остановился на этом методе для своей MMO «Toontown», после того, как их 14-летний испытуемый из белого списка решил «засунуть [своего] жирафа с длинной шеей [своего] пушистого белого зайчика». Проще говоря, вы не можете поместить в черный или белый список достаточно слов, чтобы предотвратить злоупотребления.


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

Скорее всего, любой пользователь, который попытается обойти ваш фильтр, запустит его первым. Более очевидные ненормативные лексики (в отличие от неясных или устаревших) или более частые попытки ненормативной лексики помещают их в список наблюдения для модераторов или в какой-то список запретов . Таким образом, модераторы могут сосредоточиться на пользователях, которые, кажется, пытаются преследовать других, вместо того, чтобы тратить свое время на чтение комментариев еще невинных детей.


6
+1 только для ссылки Toontown - мне особенно нравится использование игроками скрытых каналов, чтобы люди обменивались секретным кодом, чтобы они могли обойти фильтр.
Циклоп

1
Это было действительно интересное чтение, я думал, что выкопаю и поделюсь. Если вы не прочитали остальную часть моего ответа, хотя бы прочитайте это. = P
dlras2

2
Я полагаю, что Blizzard использует эту технику (секретный счетчик проклятий, опубликованный в общем чате) в World of Warcraft, по крайней мере, я знаю, что раньше.
конец

2
@Dan Личный опыт только. Я был автоматически забанен. (Это был опыт, отличный от того, что был запрещен гроссмейстером) Какой-то душ оскорблял некоторых цыплят в моей гильдии, и я ушел от него. Я не был забанен в игре, просто из / General в течение некоторого периода времени.
конец

2
+1 за первое слово «Не надо». Обход - то, что происходит, и именно поэтому вы будете чувствовать, что потратили впустую ценные ресурсы программирования, чтобы создать большую дымящуюся кучу meecrob ! ;-D
Рэндольф Ричардсон

10

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

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

При таком понимании не беспокойтесь о реализации. Он не должен быть надежным (что хорошо, потому что он не может быть надежным), но он должен быть относительно полным и максимально ненавязчивым. То есть вы не хотите быть уверенным, что не совершите « грубую ошибку».

Реализация может быть чрезвычайно простой - получить список слов и заменить любые слова, найденные в списке, звездочками или чем-то подобным. Лучше всего искать только целые слова.

Что касается списка слов, это легко: http://www.google.com/search?q=profanity+word+list

Помните, это не должно быть всеобъемлющим, оно просто должно отражать отважные усилия по защите детей.


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

5

Я попытался бы реализовать решение, включающее черный список и белый список, где вы могли бы добавить «cunt» в черный список и «scunthorpe» в белый список, например.

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

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

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

Было бы неплохо точно знать, каковы правила цензуры в США: MBNL! (Я не адвокат!)


3
Решение для развивающегося языка состоит в том, чтобы отфильтровать по случайности .
Циклоп


4

Как я заметил, фильтруя все оскорбительные слова действительно трудно - но вы могли бы повернуть его вокруг, и использовать белый список из разрешенных слов. При поиске в гугле детская игра довольно часто ограничивает список тем, что они могут напечатать. Например, Lego Universe использует белый список.

Также смотрите: Белый список для игрового чата . И обратите внимание, что белые списки можно обойти . Там нет гарантированного решения.

Учитывая, что это для маленьких детей, и неправильное написание может быть проблемой - в зависимости от интерфейса клиента, вы можете рассмотреть автозаполнение слова . Когда игроки начнут печатать буквы, предложите список возможных слов и дайте им выбрать правильное.


Хорошая идея, хотя мне может показаться странным, что в игре для детей младшего возраста может быть написано неправильно. Это также может помешать их личному развитию вне рамок того, что доступно в белом списке.
Джонатан Коннелл

@ 3nixios, я согласен, что у него есть проблемы, но и все возможные решения. :) Одним из решений проблемы правописания было бы - подожди, я должен добавить это в свой пост. :)
Циклоп

+1: это будет намного безопаснее, но как @ 3nixios: говорит, что это либо помешает разработке, либо будет очень большим списком, и поэтому время выполнения будет увеличено, верно?
Навин

@yetanothercoder, в зависимости от типа клиента (я предполагаю html / javascript), вы можете предварительно загрузить список допустимых слов и проверить их в клиенте. Это не замедлит работу сервера (хотя теоретически он может быть обойден умным программистом). Да, это больше работы - опять же, нет простых решений, извините. Все зависит от того, какой риск приемлем.
Циклоп

1
@Cyclops Для детской игры это может быть приемлемым решением, если учесть, что играют только дети. К сожалению, проверка на стороне клиента означала бы, что «плохой человек» может легко сказать, что ему нравится, другим игрокам.
Джонатан Коннелл

4

Есть ответ от Программистов, описывающий одну систему для создания фильтра ненормативной лексики. Он не объясняет, как он на самом деле построил это очень подробно, но этого должно быть достаточно, чтобы получить идею для реализации.


4

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

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

Потратьте некоторое время на изучение идей и философий Lane Merrifield, стоящих за Club Penguin, и на предоставление услуг. Вот две рецензии из его презентации на GDC в Остине в 2008 году. Я видел это и помню, что был очень впечатлен его стилем решения человеческих проблем с людьми, а не кодом.

http://gamasutra.com/php-bin/news_index.php?story=20234

http://www.raphkoster.com/2008/09/15/agdc08-lane-merrifield-at-their-service/

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

Еще один плюс для людей в том, что они будут понимать контекст. Вы не хотите, чтобы какой-то ребенок говорил: «У моей мамы рак груди» и его пинали.


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

Я бы сказал, что у вас могут быть активные фильтры ненормативной лексики, чтобы определить, что вы могли бы назвать общими вещами, и пометить это модераторам. Нетрудно составить список «100 лучших слов», а затем быстро сопоставить шаблон по всем строкам. Сначала удалите все пробелы и знаки препинания, чтобы люди не C_H_E_A_T или MANIPULATE алгоритм. В конечном счете, хотя его люди, которые будут делать это правильно.
Тим Холт

3

Простое решение проблемы:

  1. Удалите все пробелы и знаки препинания из вашего ввода.
  2. Черный список всего в городском словаре .
  3. Черный список всех гомофонов и т. Д.
  4. Черный список всего, что можно использовать как эвфамизм.
  5. Напишите свое программное обеспечение, чтобы понять содержание, намерение и тон того, что осталось.
  6. Выбросьте игру и выйдите на рынок с разумным и всезнающим творением, начиная с шага 5.

6
гомо телефоны lolololol
Джонатан Коннелл

3
Это конечный результат решения проблем с капчами спаммеров и фильтров спама: разумный ИИ, который сражается за контроль над Землей: одна сторона пытается продать Виагру, а другая пытается защитить Человечество. Очень Трансформеры. :-)
Zan Lynx

3

Некоторые ММО для детей просто заменяют чат предопределенным списком эмоций и фраз и просто не позволяют общаться в свободной форме. Возможно, игра может быть разработана, чтобы приспособить это.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.