Todas las publicaciones
16 min de lectura

Cómo configurar un filtro de palabras en un grupo de Telegram

El bot borra los mensajes con ciertas palabras. Cómo armar una regla así con varias palabras, añadirle sinónimos y excepciones y probarla antes de activarla.

Tarde o temprano, todo chat con vida empieza a repetir lo mismo: «escríbeme por privado», «vendo cuenta», anuncios de cambio de cripto. Limpiar eso a mano agota, y tener un moderador despierto las veinticuatro horas no tiene sentido: con esa publicidad y ese spam se encarga un filtro de palabras, y el bot borra él mismo los mensajes en los que aparecieron las palabras buscadas.

En Scarabeus ese filtro se llama moderación por frases. A diferencia de las reglas de IA, aquí no hay conjeturas: o la regla encontró las palabras en el mensaje, o no. Por eso las frases encajan donde las formulaciones son previsibles y el error sale caro.

El constructor se ve como un conjunto de fragmentos enlazados entre sí. Más abajo está qué significa cada enlace, cómo se combinan y por qué la misma regla a veces se comporta de otra manera de la que esperas. Todos los veredictos «atrapa» y «deja pasar» se midieron en el mismo motor que funciona dentro del bot.

Dónde se configuran las palabras prohibidas de un grupo de Telegram#

Sección Moderación → tarjeta «Moderación por frases». En la tarjeta misma está el interruptor que enciende y apaga todo el bloque, y el botón «Configurar» abre los conjuntos de reglas.

La tarjeta «Moderación por frases» en la sección Moderación

El resumen de la tarjeta muestra de inmediato cuántos conjuntos y reglas están activos y en cuántos conjuntos faltan aún las sanciones.

Las reglas viven dentro de conjuntos. Un conjunto es un lote temático: «Cripto», «Publicidad de canales», «Palabrotas». La división no es cosmética: la cadena de sanciones pertenece al conjunto, así que la publicidad y los insultos pueden castigarse de forma distinta sin mezclar sus contadores de infracciones.

Cómo armar tu primera regla#

Dentro de un conjunto pulsa «Añadir regla». Una regla se arma con fragmentos de dos tipos:

  • frase — las palabras concretas que se buscan en el mensaje;
  • número — cualquier secuencia de dígitos, que se muestra como «cualquier número».

Entre fragmentos vecinos siempre hay un enlace: O o Y. El botón «Añadir fragmento» agrega la siguiente pieza, y «Agrupar» une fragmentos vecinos en un grupo.

El editor de reglas: un grupo «buy O sell», un enlace Y con distancia 10 y la frase «crypto»

Arriba del editor siempre hay una vista previa: muestra cómo se leerá la regla en realidad.

Tomemos como ejemplo el conjunto «Cripto»: en un chat sobre juegos de mesa no hacen falta anuncios de cambio de divisas. La regla funcional más simple es una sola frase:

Atrapará los anuncios directos y dejará pasar todo lo formulado de otra manera. A partir de aquí empieza aquello para lo que sirve el constructor.

Y — ambas partes deben estar en el mensaje#

El enlace Y significa que los dos fragmentos deben aparecer en el texto. Junto al enlace aparece el campo «Hasta n caracteres»: la distancia máxima entre ellos.

  • Atrapa: “swap usdt at a good rate”.
  • Atrapa: “usdt for swap” — sin orden estricto da igual qué palabra va primero.
  • Deja pasar: “swap stickers happens every friday at our board game club, and questions about usdt belong in another chat” — entre las palabras hay más de 40 caracteres.

O — basta con cualquiera de las partes#

El enlace O se dispara si se encuentra al menos una de las partes vecinas:

  • Atrapa: “buying a couch” — O no exige nada más que una de las palabras, por eso una regla así es muy amplia.
  • Deja pasar: “trading cards”.

Un matiz importante: O une con más fuerza que Y. Esta regla:

se lee como «swap o p2p — y usdt al lado», no como «o swap, o p2p junto a usdt». Escrito de forma explícita, el mismo enlace queda así:

  • Deja pasar: “swap stickers” — la palabra “swap” por sí sola no atrapa nada, también necesita un “usdt” cerca.
  • Atrapa: “p2p usdt” y “swap usdt”.

Si hace falta otra agrupación, selecciona las partes con el botón «Agrupar»: entonces primero se busca la coincidencia dentro del grupo y solo después su resultado se enlaza con los demás fragmentos. Una regla puede tener varios grupos, pero un grupo dentro de otro grupo no está permitido.

Número — cualesquiera dígitos#

El fragmento «cualquier número» sustituye a cualquier secuencia de dígitos: importes, cantidades, números. Hace falta donde las palabras son previsibles pero los dígitos no:

  • Atrapa: “selling for 500”, “giving away 2 pieces”.
  • Deja pasar: “selling advice” — no hay dígitos en él.

«Hasta n caracteres»: dos trampas#

La primera: 0 significa «sin límite», no «pegados». Es el error más frecuente. Con un 0, los fragmentos solo tienen que coincidir en algún lugar del mensaje, aunque sea en la primera línea y en la última.

La segunda: la distancia se cuenta sobre un texto al que ya le quitaron los espacios.

  • Atrapa: “notcrypto”, “not crypto” y “not crypto” — los espacios desaparecen antes de la comprobación, así que en los tres casos la distancia es cero.

Por eso el límite cubre mucho más de lo que parece a simple vista: 40 caracteres sin espacios son unas seis o siete palabras.

Orden estricto#

Por defecto el enlace Y no mira el orden, como en el ejemplo “usdt for swap” de más arriba. La casilla «Orden estricto» exige que las partes vayan en el texto de izquierda a derecha, justo como están colocadas en el formulario. En el esquema el orden estricto se marca con un signo de exclamación:

  • Atrapa: “buying usdt”.
  • Deja pasar: “usdt buying”.

El orden estricto se puede activar para toda la regla o solo para un grupo.

Excepciones#

La casilla «Excepción» convierte un fragmento en una condición que cancela el disparo. La excepción sigue siendo una parte normal de la cadena —con su propio enlace, como todas las demás— y solo se distingue por el color. Qué cancela exactamente depende del nivel.

Una excepción en el nivel superior cancela toda la regla. Primero se comprueba la parte principal y, si coincidió pero en algún lugar del mensaje apareció la excepción, la regla no se dispara. Un ejemplo es el conjunto «Publicidad de canales», donde los anuncios propios no deben caer en la redada:

  • Atrapa: “subscribe to the channel”.
  • Cancelado por la excepción: “subscribe to our channel”.
  • Cancelado por la excepción: “our channel: subscribe to the channel” — da igual en qué parte del mensaje aparezca la excepción.

Si las variantes «propias» son varias, la excepción se pone sobre todo el grupo: entonces cualquiera de ellas cancela el disparo:

  • Cancelado por la excepción: “subscribe to the official channel”.
  • Atrapa: “subscribe to the channel”.

Una excepción dentro de un grupo apaga solo ese grupo, mientras las demás ramas del O siguen funcionando fuera de él. Cómo se ve eso en la práctica está en la sección sobre combinaciones, más abajo.

En cada nivel se permite una excepción; las excepciones anidadas están prohibidas.

Combinaciones: cómo trabajan juntas las partes#

Los enlaces por separado se entienden; las sorpresas empiezan al combinarlos. Y son justamente las combinaciones las que hacen falta para limpiar publicidad y spam sin tocar las conversaciones normales. Estas son las combinaciones principales y cómo reacciona la regla ante ellas.

Un grupo con Y dentro de un O#

Un grupo puede ser él mismo un enlace Y: entonces pasa entero a ser una de las ramas del O:

  • Atrapa: “buying usdt” — se disparó el grupo.
  • Atrapa: “any p2p here?” — se disparó la segunda rama, el grupo no hizo falta.
  • Deja pasar: “buying a couch” — en el grupo falta “usdt”, y “p2p” no está.

Una cadena de tres partes#

Los enlaces Y se pueden poner seguidos, cada uno con su distancia. La regla se dispara solo si se encuentran todas las partes:

  • Atrapa: “selling telegram account”.
  • Deja pasar: “selling an account” — falta una parte.

Dos grupos unidos por Y#

Los grupos pueden ser varios; por ejemplo, sinónimos a ambos lados:

  • Atrapa: “p2p btc”, “swap usdt” — cualquier palabra del primer grupo junto a cualquiera del segundo.
  • Deja pasar: “swap stamps”.

Orden estricto sin límite de distancia#

El orden estricto y la distancia son independientes. Con el cero importa el orden, pero no la separación:

  • Atrapa: “swap stickers, and at the very end about usdt”.
  • Deja pasar: “usdt first, swap later”.

Orden estricto solo dentro de un grupo#

El orden se le puede exigir a un solo grupo sin atar el resto de la regla:

  • Atrapa: “buying usdt”.
  • Deja pasar: “usdt buying” — dentro del grupo el orden está roto.
  • Atrapa: “usdt buying via p2p” — el grupo no se disparó, pero sí la rama “p2p”.

El número primero#

El número puede ir en cualquier lugar de la cadena. Junto con el orden estricto eso permite atrapar «importe, luego divisa» sin tocar el orden inverso:

  • Atrapa: “500 usdt”.
  • Deja pasar: “usdt 500”.

Una excepción dentro de un grupo#

El caso más sutil: la excepción apaga solo su propio grupo, y la rama vecina del O vive por su cuenta:

  • Atrapa: “swap usdt” — el grupo se disparó y no hay excepción.
  • Cancelado por la excepción: “swap stickers” — el grupo está apagado y no hay otras ramas en el mensaje.
  • Atrapa: “swap stickers and p2p” — el grupo está apagado, pero la rama “p2p” se disparó por su cuenta.

Orden estricto y excepción#

La excepción no participa en el orden: el orden estricto comprueba las partes principales, y la excepción se busca por todo el mensaje:

  • Atrapa: “buying usdt”.
  • Cancelado por la excepción: “buying from you usdt”.

Por qué la regla no se dispara como esperabas: qué le pasa al texto antes de la comprobación#

Esta es la sección clave: la mitad de las sorpresas se explica precisamente aquí. Tanto la regla como el mensaje se reducen a una misma forma y solo después se comparan:

  1. el texto pasa a minúsculas: las mayúsculas nunca importan;
  2. se eliminan los emojis;
  3. los signos de puntuación y los símbolos se sustituyen por un espacio;
  4. se reconoce la sustitución de letras: en las palabras donde se mezclan alfabetos, o letras con dígitos, los caracteres ajenos se devuelven a su sitio: “go0ds” se lee “goods”, y “cаnal” con una «а» cirílica se lee “canal”. Una secuencia de dígitos no se toca, así que “100” sigue siendo “100”, y “g00ds” con dos ceros seguidos tampoco se transforma;
  5. se eliminan todos los espacios.

De ahí salen tres consecuencias que conviene recordar:

  • La búsqueda va por subcadenas, no hay límites de palabra. La frase ban se encuentra en “banana” y “urban”. Las frases cortas casi siempre hay que precisarlas con un enlace Y o cambiarlas por otras más largas.
  • Los espacios y los signos dentro de la frase no estorban. La regla spam se dispara con “s p a m” y “s.p.a.m”.
  • Una frase hecha solo de emojis o de signos de puntuación no se disparará nunca: tras la normalización no queda nada de ella.

Comprueba la regla antes de que empiece a trabajar#

Abajo del editor está la tarjeta «Comprobar regla». Pega en el campo «Texto para comprobar» un mensaje real y pulsa «Comprobar».

Se comprueba el borrador que está abierto ahora mismo en el formulario: no hace falta guardar la regla. Eso no provoca sanciones ni aparece en el registro. La respuesta es de tres tipos:

  • «El texto no pasa la moderación» — la regla se habría disparado;
  • «El texto pasa la moderación» — no se disparó; debajo se enumera qué faltó exactamente: «No se encontró en el texto: …»;
  • «El texto pasa la moderación» con la excepción resaltada — la regla se disparó, pero la excepción la canceló.

El resaltado muestra el texto ya normalizado: sin espacios, sin emojis y sin signos de puntuación. Se ve raro, pero así se ve al instante qué compara el bot en realidad.

La tarjeta «Comprobar regla»: el texto “sell crypto” no pasa la moderación

La comprobación no guarda nada ni castiga a nadie: solo muestra si la regla se habría disparado con ese texto.

Por qué la regla no borra mensajes: las sanciones se definen en el conjunto#

La cadena de castigos se define solo en el conjunto: «tras N infracciones, una advertencia; tras la siguiente, un silencio», y así sucesivamente. Ni la regla por separado ni el bloque entero tienen cadena propia: el conjunto es precisamente la unidad a la que se le asigna la dureza. Por eso conviene repartir las reglas en conjuntos: «Cripto», «Publicidad de canales» y «Palabrotas» se castigan de forma distinta.

El conjunto «Profanity»: dos reglas y la cadena «sin sanción → advertencia → silencio»

Las reglas del conjunto se ven en lista, y abajo de la tarjeta está su cadena de castigos.

Si en el conjunto no hay sanciones configuradas, sus reglas no se disparan en absoluto y en el registro no aparece ni una línea. El conjunto parece operativo, pero en realidad no actúa. Si una regla «no atrapa», esto es lo primero que hay que revisar.

La casilla «Contador de infracciones propio» del editor de reglas hace falta cuando una regla no debe arrastrar a las demás: sus disparos se cuentan aparte y no mueven el contador común del conjunto. La contrapartida: al desactivar la casilla, el contador acumulado de esa regla se borra y la escalada empieza de nuevo.

Qué se comprueba y cuándo#

  • Se comprueban el texto del mensaje y el pie de los archivos multimedia. Los mensajes sin texto no tocan las capas de texto.
  • Los mensajes editados se comprueban de nuevo: corregirlos no salva.
  • Los administradores del chat y los miembros de la lista blanca se saltan todas las comprobaciones: ni disparos, ni contadores.
  • Las capas van por turnos: longitud → duplicados → frases → expresiones regulares → enlaces. La primera capa que se dispara termina la comprobación, así que un mensaje atrapado por la longitud o por los duplicados ya no llega a las frases.
  • Si se dispararon varias reglas de frases, cuenta la primera por orden: de ella se toma el conjunto y, por tanto, la cadena de castigos.

En el registro de moderación el disparo aparece como «Frases: nombre del conjunto»; allí mismo se ve qué regla coincidió y en qué escalón de escalada quedó el participante.

Límites de los planes#

En el plan Limitado funcionan a la vez como mucho diez reglas de frases: el interruptor de la tarjeta del conjunto elige cuáles están activas. La cantidad de conjuntos no está limitada. En Base no hay límites de frases, y allí mismo están disponibles las expresiones regulares y los ajustes propios para los temas del foro. Qué incluye cada plan está en la página de precios.

Preguntas frecuentes#

¿En qué se diferencian las reglas de frases de las palabras prohibidas de siempre?

Una palabra prohibida lo está por sí sola. Una regla de frases sabe exigir varias palabras juntas, admitir sinónimos mediante O, tener en cuenta el orden y callarse si en el mensaje apareció una excepción. Por eso toca las conversaciones normales mucho menos a menudo.

¿Cómo bloquear las palabrotas en un chat de Telegram?

Crea un conjunto aparte —por ejemplo, «Lenguaje soez»—, reúne en él reglas con las variantes de escritura unidas por O y asígnale al conjunto una cadena de castigos. Mientras el conjunto no tenga sanciones, sus reglas no se disparan.

¿Por qué mi regla no borra nada?

Lo más habitual es que en el conjunto no haya cadena de castigos configurada. Otras causas: el bloque «Moderación por frases» está apagado; el mensaje lo atrapó una capa anterior, la de longitud o la de duplicados; el autor resultó ser administrador del chat o miembro de la lista blanca; en el plan Limitado la regla no entró en las diez activas.

¿Se atrapan las palabras con espacios y letras sustituidas?

Sí. Antes de la comprobación se quitan del texto los espacios, los emojis y los signos de puntuación, y los dígitos o letras de otro alfabeto metidos dentro de una palabra se devuelven a su sitio. Por eso “s p a m”, “s.p.a.m” y “spam” son lo mismo para la regla.

¿Se comprueban los pies de foto y los mensajes editados?

Sí. Las reglas miran el texto del mensaje y el pie de los archivos multimedia, y un mensaje editado se comprueba de nuevo: corregirlo no lo salva.

Lista de control breve#

  • El conjunto tiene asignada una cadena de castigos; si no, las reglas callan.
  • El valor «Hasta n caracteres» no es 0 si querías decir «al lado».
  • Si importa el orden de las palabras, «Orden estricto» está activado.
  • Las frases cortas como ban están precisadas con un enlace Y para no atrapar “banana”.
  • La regla se probó con un mensaje real en la tarjeta «Comprobar regla».
  • Los anuncios propios están puestos en una excepción.

Más guías sobre la moderación de grupos de Telegram, en el journal de Scarabeus.

Sigue leyendo