El filtro del chat ya habla nuestros doce idiomas
Tenía un diccionario, y ese diccionario era inglés. Así que no detectaba nada del insulto escrito en los otros once idiomas y, mientras tanto, rechazaba palabras del todo corrientes — entre ellas la francesa para «tres», en un juego que se juega con dados.

En palabras sencillas
Una cuarta parte de todo lo que los jugadores escriben en opolyx no está en inglés, y hasta ahora el filtro del chat no podía leer nada de eso. Tenía una única lista grande de palabras inglesas, lo que significaba que el insulto en ruso, chino, árabe, español o alemán pasaba intacto. Esa es la mitad que uno espera. La que no se espera es que esa misma lista andaba rechazando palabras que no tienen nada de groseras: la palabra francesa para «tres» — en un juego que se juega con dados —, una palabra alemana que significa «rico» en un juego sobre propiedades, y el nombre inglés de una pieza de ajedrez. Un jugador francés no podía escribir el número tres en el chat.
Ahora hay un diccionario para cada idioma que publica el sitio, más ucraniano, y cada uno está escrito según cómo forma palabras ese idioma de verdad, en lugar de traducir una lista inglesa. El ruso flexiona, así que una regla tiene que acertar una raíz junto con sus terminaciones. El chino no pone espacios entre palabras, así que una regla tiene que mirar dentro de la frase. Y el mensaje que recibes cuando algo se rechaza también está traducido: antes estaba en inglés, en un sitio en doce idiomas, de modo que la persona con menos posibilidades de entender el rechazo era justo la que más probablemente lo recibía.
Para los más técnicos
Lo difícil fue demostrar que algo de esto funciona, y conviene decir el motivo con claridad: un filtro de moderación no se puede probar contra su propio registro de chat. Un mensaje que el filtro antiguo rechazó nunca se guardó, así que el registro contiene solo lo que pasó — y para un idioma sin jugadores todavía, no contiene absolutamente nada. Probar contra él sería medir supervivientes y llamarlo cobertura. Así que los diccionarios se comprueban contra nuestros propios textos traducidos: cada página del sitio, en cada idioma, escrita por nosotros y limpia por construcción. Cualquier palabra que el filtro señale ahí es un falso positivo por definición, sin ninguna valoración de por medio.
| Lo que hacía | Cantidad |
|---|---|
| Mensajes obscenos cazados, todo el corpus | 0 |
| Mensajes obscenos que ahora puede ver | 113 |
| Páginas limpias nuestras que señaló mal | 40 |
Los apodos pesan más que los mensajes, y no se filtraban en absoluto. Un mensaje se va hacia arriba; un apodo se imprime junto a cada jugada que haces, y se dibuja en los clips destacados que este sitio publica en YouTube, Instagram y TikTok. Ahora se comprueban — pero a propósito no contra la lista grande, porque como simples cadenas esa lista rechaza «Classic» y «Cassandra». Pasada ingenuamente sobre los dos mil quinientos apodos reales de opolyx, la comparación por subcadenas señala cuarenta, y alrededor de la mitad son nombres corrientes: Hassan, Yassin, Phoenix. Publicar eso les habría dicho a esas personas que sus nombres eran obscenos.
El caso chino ilustra mejor que ninguno por qué no bastaba con traducir una lista inglesa. La comparación antigua cotejaba palabras enteras separadas por espacios — un diseño perfectamente razonable, porque es justo lo que impide rechazar «assassin» por contener una subcadena grosera. Pero el chino no separa las palabras con espacios, así que una frase china entera llega como un único elemento enorme, y ninguna entrada de ninguna lista de palabras puede coincidir jamás dentro de ella. No es que el filtro fuera malo en chino: era estructuralmente incapaz de verlo.
