Filtro de malas palabras para un chat MMO

32

Estamos desarrollando un MMO usando el servidor Smartfox. El público objetivo son niños de 7 a 12 años.

Hay una opción de chat global en este MMO.
Cualquier cosa que el usuario escriba en un cuadro de texto se mostrará junto al avatar del usuario después de que él / ella presione enter.

Nos gustaría filtrar lenguaje / blasfemias abusivas de este chat.
Podríamos capturar el chat y leer el texto. El problema es obtener la lista de blasfemias en sí.

Nuestras preguntas son

  1. ¿Dónde se obtendrá una lista exhaustiva de todas las blasfemias?
  2. ¿Qué método se adopta en un escenario similar para filtrar estos?
naveen
fuente
17
Buena suerte con el problema Scunthorpe .
Cyclops
77
@yetanothercoder, mi punto es que filtrar es un problema difícil . Por ejemplo, ¿tu juego tendrá algún evento el sábado? ¿ Podrán los jugadores escribir la palabra "Sábado" (tenga en cuenta las cuatro letras del medio) en sus cuadros de chat? (Y tampoco sé por qué el voto negativo: no es una mala pregunta , pero puede que no haya una respuesta simple).
Cyclops
66
Y se vuelve aún más complicado cuando entran en juego más idiomas. Por ejemplo: Starcraft 2 quita "weniger" de la charla, que es simplemente la palabra alemana para "menos" ...
bummzack
44
Otro problema que encontré con frecuencia cuando era joven y jugaba MMO filtrados era que estaban basados ​​en el idioma inglés. Entonces, si hablaba francés, algunas palabras francesas decentes serían censuradas porque parecían maldiciones en inglés y, en cualquier caso, aún podría maldecir en francés todo lo que quisiera.
Xeon06
2
Por lo que he visto, lo más importante para hacer un buen filtro es tener una opción para desactivarlo. Si no tienes otra opción, y los jugadores saben que no tienen otra opción que ser censurados, eludirán al censor. Si facilita que lo apaguen, es probable que dejen de eludirlo, y aquellos que no deseen experimentar un lenguaje áspero no tendrán que tratar con las personas que están tratando de eludir el filtro.
Michael Zehnich

Respuestas:

46

No lo hagas

Los filtros no funcionan. Al menos, solo los filtros no funcionan. Listas blancas, listas negras, no importa. Ninguno de estos evitará que los niños se acosen entre ellos. La única forma de hacer que esto funcione sería no filtrar el chat, sino proporcionar grandes bloques de construcción para las oraciones. Por ejemplo, un niño puede seleccionar "¿Desea ...?" Y las opciones para "ir a ..." y "comerciar ..." se abrirían. Al seleccionar "ir a ...", aparecerá una lista de lugares en el juego.

Disney se decidió por este método para su MMO "Toontown", después de que su sujeto de prueba de la lista blanca de 14 años decidiera "pegar [su] jirafa de cuello largo en [su] conejito blanco esponjoso". En pocas palabras, no puede incluir en la lista negra o en la lista blanca suficientes palabras para evitar el abuso.


Dicho todo esto, si estuviera diseñando un MMO para niños, realmente implementaría un estricto filtro de lista negra, pero solo como una segunda línea de defensa. Su primera línea de defensa siempre debe ser moderadores y la capacidad de denunciar el abuso. Consideraría las palabras en la lista negra, y cada usuario obtendría un puntaje secreto de cuán profanos están tratando de ser.

Lo más probable es que cualquier usuario que intente evadir su filtro lo active primero. Las blasfemias más obvias (en oposición a las oscuras u obsoletas) o los intentos de blasfemias más repetidos, los ponen en una lista de vigilancia para los moderadores, o algún tipo de lista de prohibición . De esta manera, los moderadores pueden centrarse en los usuarios que parecen estar tratando de hostigar a otros en lugar de perder el tiempo leyendo los comentarios de niños aún inocentes.

dlras2
fuente
66
+1 solo para el enlace Toontown: me gusta especialmente el uso que hacen los jugadores de canales encubiertos para que las personas intercambien su código secreto, para que puedan pasar por alto el filtro.
Cyclops
1
Fue una lectura realmente interesante que pensé en desenterrar y compartir. Si no lees el resto de mi respuesta, al menos lee eso. = P
dlras2
2
Creo que Blizzard usa esta técnica (puntuación secreta del recuento de maldiciones publicado en el chat general) en World of Warcraft, al menos sé que solían hacerlo.
Nate
2
@Dan Experiencia personal solamente. Me prohibieron automáticamente. (Lo cual fue una experiencia diferente a la de ser prohibido por un GM). Una ducha estaba asaltando verbalmente a algunas chicas en mi gremio, y me fui con él. No fui excluido del juego, solo de / General por un período de tiempo.
Nate
2
+1 para la primera palabra "No lo hagas". ¡La circunferencia es lo que sucede y es la razón por la que sentirás que has desperdiciado valiosos recursos de programación para crear una gran pila humeante de meecrob ! ;-D
Randolf Richardson
10

En respuesta a las personas que dicen no proporcionar el filtro, argumentaría que tiene que proporcionar un filtro, por ninguna otra razón que cubrir su propio trasero con respecto a los padres de su audiencia prevista. Solo asegúrese de que el usuario pueda desactivarlo. Al implementar un filtro de blasfemias (aunque imperfecto y totalmente opcional), puede decir que ha hecho todo lo que se esperaba de usted para proteger la sensibilidad de su público más joven.

Al hacer posible la deshabilitación, desalienta a los usuarios de tratar de eludirlo utilizando una puntuación o sustitución inteligente, ya que las personas que favorecen ese tipo de lenguaje deshabilitarán inmediatamente el filtro en sus propias computadoras, y habrán olvidado hace mucho tiempo que incluso existe un filtro .

Con ese entendimiento, no se preocupe tanto por la implementación. No necesita ser infalible (lo cual es bueno, porque no puede ser infalible), pero debe ser relativamente completo y lo menos intrusivo posible. Es decir, no quiere asegurarse de no cometer el " error clbuttic ".

La implementación puede ser extremadamente simple: obtenga una lista de palabras y reemplace las palabras encontradas en la lista con asteriscos o algo similar. Lo mejor es buscar solo palabras completas, también.

En cuanto a una lista de palabras, eso es fácil: http://www.google.com/search?q=profanity+word+list

Recuerde, no tiene que ser exhaustivo, solo debe ser representativo de un valiente esfuerzo de su parte para proteger a los niños.

tylerl
fuente
1
+1 también sería mi enfoque, después de investigar en detalle lo que realmente necesita hacer para una clasificación de edad específica.
Oskar Duveborn
5

Intentaría implementar una solución que permita una lista negra y una lista blanca, donde podría agregar 'coño' a la lista negra y 'scunthorpe' a la lista blanca, por ejemplo.

No creo que alguna vez pueda implementar una solución a prueba de fallos, por lo que trataría de obtener las palabras más "populares" en su diccionario y facilitar lo más posible agregar nuevas palabras a las listas.

La razón de esto es que los idiomas, especialmente el inglés, evolucionan constantemente y algo que ha sido inofensivo durante décadas podría volverse ofensivo en el contexto correcto.

Trate de obtener la mayor cantidad de palabras posible y vaya desde allí, tenga tiempos de reacción rápidos cuando las personas se quejen y demuestre que esto es generalmente una preocupación y dudo que tenga algún problema.

Sería una buena idea saber exactamente cuáles son las pautas para la censura en los Estados Unidos: ¡MBNL! (yo no sea abogado!)

Jonathan Connell
fuente
3
La solución a la evolución del lenguaje es filtrar por preferencia .
Cyclops
@Cyclops Win! xD
Jonathan Connell
4

As I commented, filtering all offensive words is really hard - but you could turn it around, and use a whitelist of allowed words. Doing a google search, it seems fairly common for children's game to limit what they can type to a list. For instance, Lego Universe uses a whitelist.

Also see: Whitelisting for game chat. And note that whitelists can be circumvented. There is no guaranteed solution.

Considering that it's for young children, and mis-spelling could be a problem - depending on the client interface, you might consider word auto-completion. As the players start typing letters, offer a list of possible words and let them select the correct one.

Cyclops
fuente
Good idea, though it would seem strange to me on a game for younger children that may get spelling wrong. It could also hinder their personal development out of the scope of what is available on the whitelist.
Jonathan Connell
@3nixios, I agree it has problems, but so do every possible solution. :) One fix to the spelling problem would be - wait, I should add that to my post. :)
Cyclops
+1: this will be a lot safer but as @3nixios: says it would either hinder development or it will be a very big list and so the execution time gets increased right?
naveen
@yetanothercoder, depending on the client type (I'm assuming html/javascript), you could pre-download a list of valid words and check them in the client. This wouldn't slow down the server (it could theoretically be bypassed by a smart programmer, though). Yes, this is more work - again, there are no easy solutions, sorry. It all depends on how much risk is acceptable.
Cyclops
1
@Cyclops For a kids game this could be an acceptable solution if you consider only kids playing. Unfortunately client-side checking would mean a 'bad-man' could easily say what he liked to the other players.
Jonathan Connell
4

There's an answer from Programmers describing one system for building a profanity filter. He doesn't explain how he actually built it in great detail, but it should be enough to get an idea for implementation.

thegrinner
fuente
4

This is a problem best solved by humans and social design rather than code.

Your best source for an exhaustive list is a live human who is present in the game and monitoring the chat stream. Put people in your game and let them be your ultimate filter.

Spend some time looking into Lane Merrifield's ideas and philosophies behind Club Penguin and about providing service. Here are two writeups from his presentation at the Austin GDC in 2008. I saw it and remember being very impressed with his style of solving human problems with humans and not code.

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

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

Specifically because your game is aimed at kids, it's more than just swear filters you'll need to think about. You'll need to worry about people posing as kids who may or may not have bad motives. You'll need to assure parents that their kids are safe. You'll need to assure kids that they are safe too for that matter.

Another plus for humans is that they will understand context. You don't want some kid saying, "My Mom has breast cancer" and getting kicked.

Tim Holt
fuente
we sure do have moderators who could ban potential manipulators. i am more concerned about profanity. it will be a tedious task for moderators when, most of the words used in the bad context will be repetitive.
naveen
I'd say certainly you can have profanity filters active to detect what you might call the common stuff, and flag it to the moderators. It's not that hard to come up with a "top 100" list of words, then do some quick pattern matching on all strings. Remove all spaces and punctuation first so people don't C_H_E_A_T or M A N I P U L A T E the algorithm. Ultimately though its' humans that will do it right.
Tim Holt
3

Simple solution to the problem:

  1. Remove all spaces and punctuation from your input.
  2. Blacklist everything in the Urban Dictionary.
  3. Blacklist all homophones etc
  4. Blacklist everything that could be use as a euphamism.
  5. Write your software to understand the content, intention and tone of what is left.
  6. Throw away game and go to market with sentient and omniscient creation from step 5.
Colin Pickard
fuente
6
homo phones lolololol
Jonathan Connell
3
This is the end result of the spammers captcha solvers and spam filters: sentient AI that battles for control of Earth: one side trying to sell Viagra and the other trying to protect Humanity. Very Transformers. :-)
Zan Lynx
3

Some MMOs for children simply replace chat with a predefined list of emotes and phrases and simply doesn't allow free-form chat. Perhaps the game could be designed to accommodate that.

Oskar Duveborn
fuente