Journal J'ai niqué le p0rn : l'antispam qui marchait (étrangement)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
14
14
août
2025

Suite à l'idée de faire un antispam pour bluesky, j'ai fait un antispam, et ça marche, mais absolument pas comme j'avais prévu.

Comment les meilleures idées théoriques sont poutrées par des idées cons

Théoriquement, le plan était simple :

  • je faisais des corpus de mots clés HAM/SPAM ;
  • je les normalisais ;
  • je faisais les cosinus similarités des « word counter » (compteur de lemmes) entre le texte et les mots clés et j'en déduisais si c'était HAM ou SPAM.

Et ce plan était pourri, jetant dans ma face moult faux positifs. Et j'ai une dent contre le sporn (spam + porn).

Je suis comme tout le monde, j'aime le sexe, mais, j'aime pas qu'on me force de la viande sous mon nez quand j'ai pas demandé, surtout quand ça empêche de voir ce qui se passe de légitime.

X is X of UK

Tout ça c'est de la faute d'une loi passée aux UK qui a entraîné une énorme migration des comptes p0rn de X vers bluesky, et dans le même temps, vu mes graphs d'activité on peut garantir que la sphère francophone est restée sur X, parce que X c'est bien connu est un espace bienveillant envers les progressistes.

Donc entre le moment où j'ai commencé à coder naïvement le bot, j'étais en conditions parfaites (quasiment pas de sporn), et il y a 3 semaines je me suis retrouvé avec un rapport p0rn / signal de 1.

Aujourd'hui (venant du pays d'oïl, je tiens à signaler que hui signifie autant maintenant qu'ici, et qu'au jour d'hui est une répétition au même titre qu'« au jour d'aujourd'hui ») je mange du 2 de p0rn pour 1 de signal.

X for X in post if post["labels"]["val"] is not "porn"

J'ai implémenté un algo bayésien de cosinus similarité, et il marchait pas de ouf, donc, je me suis aussi appuyé sur l'étiquetage (tagging en fr_paris) de bluesky pour blacklister les comptes qui se faisaient taguer par BS (bluesky) comme porn.

Étrangement, les obsédés sexuels, sont des obsédés et ne parlent de rien d'autres, et étrangement, ils sont peu nombreux, mais postent beaucoup.

Cette heuristique à la con qui pourtant n'est pas des plus brillantes de ma carrière bloque 95% des sporns.

Comme quoi, parfois, les idées les plus simples sont parfois les plus efficaces.

Le code est à ièche, faut que je ré-écrive tout, mais il y a une satisfaction à être idiot et que ça marche.

Et donc, des fois que l'envie de jouer avec atproto (le protocole de bluesky dont la doc est imbitable) vous prenne vous avez mon code à dispo qui fait :

  • de l'introspection de message,
  • de l'envoie de message,
  • de l'anti sporn (à la con).

et c'est ici

  • # NB maj du README sous peu

    Posté par  (site web personnel) . Évalué à 3 (+2/-0).

    Salut,

    le code manque de doc :)

    La ligne avec l'antispam qui illustre ce journal est exactement ici

    Mais, si personne n'est intéressé, j'ai pt'et pas besoin de mettre à jour le README ; c'est du travail :P

    • [^] # Re: NB maj du README sous peu

      Posté par  (site web personnel) . Évalué à 6 (+3/-0).

      Le sujet m'intéresse à deux titres : faire un antispam pour LinuxFr.org (bayésien ou liste de blocage) et pour le service share vers les réseaux sociaux (m'avait bien semblé aussi que la doc était cryptique/peu pédagogique.

      Situation actuelle : une liste de blocage utilisée a posteriori et manuellement d'une part (entrée de suivi quelque part que je ne retrouve pas), et un code pas mis en service d'autre part.

      • [^] # Re: NB maj du README sous peu

        Posté par  (site web personnel) . Évalué à 2 (+1/-0).

        Le sujet m'intéresse à deux titres : faire un antispam pour LinuxFr.org (bayésien ou liste de blocage) et pour le service share vers les réseaux sociaux (m'avait bien semblé aussi que la doc était cryptique/peu pédagogique.

        La doc de bsky je sais pas si c'est une IA ou un humain qui l'a pondu, mais elle répond à des tas de questions sauf celles que je me pose.

        J'ai pas bien dû comprendre les tutos que j'ai trouvé sur le filtrage bayésien car pour moi, la technique que j'ai implémentée n'est pas digne d'une probabilité bayésienne mais correspond à un bête cosinus similarité, que j'implémente nativement pour les dict avec archery.

        Cette méthode est utilisée en dernier recours car elle présente moults faux positifs/faux négatifs (~5%, ~10%). Ce qui sur le nombre est beaucoup.

        Situation actuelle : une liste de blocage utilisée a posteriori et manuellement d'une part (entrée de suivi quelque part que je ne retrouve pas), et un code pas mis en service d'autre part.

        Le code BS à l'air bon au vu de mes (petites) connaissances. Je devrais dire «c'est pas bien d'être sur X», et que vu que t'es en logique de pousser et non de tirer du contenu comme je le fais tu te moques un peu du sporn.

        Pour l'instant actuel, le spam est d'origine porn. Ce que je fais, c'est que j'attends que les modos BS l'étiquette porn et je fais la liste de blocage avec les alias bloqués. Ce qui m'oblige à temporairement corriger manuellement (d'où l'interface websocket de gestion).

        Pour ton cas, ça nécessite de réagir à chaud, ce qui va à mon avis nécessité une interface d'étiquetage.

        Un truc qui aide comme conseillé dans le précédent journal, c'est la détection de langue : un contenu tagué fr en anglais en général c'est pas bon signe. Et c'est pas mal de spam viré :)

        Heureusement, les spammeurs varient pas trop leurs adresses d'envois et bien que notables sont faciles à bloquer (ma liste de blocage contient 243 entrées)

        Graph d'activité sur le BS francophone
        notables

        • [^] # Re: NB maj du README sous peu

          Posté par  (site web personnel) . Évalué à 7 (+5/-0).

          Un peu à côté du sujet, j'ai une grande préférence sur LES Mastodons (Ou bien, le Fédiverse).
          Parce qu'il y a plusieurs serveurs, avec chacun des règles différentes, et, les politiques de modérations correspondantes.
          Et, parce que l'on peut bloquer un utilisateur, ou un serveur. Il est même prévu que certains utilisateurs ou serveurs soient directement bloqués par les administrateurs de serveurs.
          Et, on peut même monter facilement son propre serveur Mastodon (ou Pleroma, Glitch-soc etc.), pour y définir nos règles, sa modération etc.

          C'est une très grosse différence par rapport à BlueSky.

          Donc, dans le Fédiverse, on peut bien plus facilement être dans un environnement qui correspond à ce qu'on veut. Et il y en a pour tous les goûts. Certains serveurs fonctionnent en circuit fermé d'ailleurs.

          Mais sinon oui, le spam, c'est pénible.

          Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

        • [^] # Re: NB maj du README sous peu

          Posté par  (site web personnel) . Évalué à 2 (+1/-0).

          J'ai trouvé des stats meilleures que les miennes en RRD et c'est là où l'on voit que je mesure uniquement les POSTS francophones.

          image

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.