Blocage de mots clés

Salut,
Thread vite fait qui aura sans doute une esperance de vie tres courte

J’ai vu ce tweet de @Cafeine

Et je me suis posé une question de gros béotien:
Comment tu gères ce genre de cas?
Je suppute une db qui contient une chiée de mot à bannir, si ça matche, le mot est censuré.
Mais ici , le mot « shoah » est mal écrit, volontairement.
Un simple" if sho* in [nickmane] then drop" (deb en dev ! mais vous voyez l’idée) me parait trop violent
et utiliser le machine learning , meme google s’en est mordu les doigts.
( Attention je suis un deb total en dev, je voudrais juste comprendre le principe, pas le faire)

Comment , pour ce cas typique d’orthographie bien foireuse , tu peux être suffisamment exhaustif pour ne pas que ça ce reproduise, sans rendre illisible l’ensemble d’un chat/forum/ groupe de nickname.

En bref, vous , dont c’est le métier, comment auriez vous gérer ça finement.
( et paf, lancement d’une discussion sur l’etat de l’art du dev’ en 2021)

1 « J'aime »

Tu blacklist SHO-A SH-OA S-HOA, etc, a la main. Ca prend trois dixième de milliseconde de ban un pseudo et tu fais ca tous les jours. Etre réactif ca suffit du moment que t’as les capacités d’être réactif. Pas besoin d’être si pro-actif que ca ave une bonne équipe et les bons outils. Sur Xbox le truc le plus barre de rire du service c’est de faire « SELECT * FROM BannedGamerTags »… y a des gens TRES créatifs pour by-pass toutes les mesures que tu peux mettre en place. Mais ils sont aussi assez rapide avec les bons outils de report/decision/ban et un SLA imposé sur les decisions avec des métriques de moderations, etc, pour dégager tout ce qui pue … C’est pas du miracle, c’est le taff de gestion de communautee, avec les bons outils. C’est plus compliqué quand ca part a l’international et ca demande des bonnes équipes locales.

2 « J'aime »

LES MAJUSCULES PUTAIN. C’est quoi ce message là. GNNNN. (Si je delete le thread ça sera plus à cause de ça…)

C’est un problème vieux comme les jeux en ligne, mais le TL;DR c’est : faut des humains formés à ce jeu débile pour les cas à la con. Report, analyse, ban (ou pas). Pour le reste c’est du mot clé.

2 « J'aime »

Merci à tous les deux…et toutes mes confuses Caf’.

Donc,il n’existe pas de solution miracle logiciel, il faut du bonhomme derriere.

Tu peux shoot le thread :slight_smile:

Ça me fait penser à ma nièce dont la nouvelle marotte est de trouver les limites du pseudo utilisateur sur la Switch.
Je peux vous dire par exemple que « Merde » tout seul est refusé mais "Salutmerde " est accepté, tout comme « Merdique ». Je vous passe les autres tests.
Voilà.

1 « J'aime »

Un ancien collègue avait récupéré un projet sur lequel avait été développé un système de filtre un peu agressif sur des commentaires.
Impossible d’utiliser des mots comme « continu », « cultiver », « habiter »…

C’est pas oracle qui avait développé une fonction « soundlike » basée sur les phonèmes ?

Mais Heu vous le feriez vraiment directement en DB ?
À mon avis on serait plus sur des regex ou effectivement du ML en batch ou à l’enregistrement…

Tu fais rien, comme les 3/4 des entreprises concernées ?
Plus sérieusement, tu mets juste un bouton « report » à côté de la liste des joueurs et une team de modérateurs en sous-effectif, comme dans plein de jeux. Certes, on pourrait sortir des solutions tordues avec des regex, des trucs qui détectent la prononciation dans 20 langues, du machine learning (des filtres baysiens, quoi…) mais faut pas se mentir : les gens contourneront la chose.

Probablement un gros combo:

  • DB pour les termes exacts à banir
  • une passe dessus façon regex pour avoir les variations, probablement avec de la substitution 1337 aussi.
  • un petit algo d’approximation de texte façon Levenstein ou autre.

Avec ça tu passes des alertes à une tea de CM qui ban ou pas.
Tu te bases sur les résultats des bans/non ban des CM pour entraîner un algo.

Ça reste de la grosse grosse supposition hein :wink:

1 « J'aime »

Voilà.
Si je me rappelle bien,il me semble qu’on retrouvait ce problème dans le chat du jeu Clash of Clan.
Dès que tu écrivait continue, c’est ***tinue qui apparaissait. Instantanément et sans modération humaine.
Et ça a était corrigé plus tard , j’en déduis que les dev ont du modifier leur Blacklist ou leur algo. Mais ça doit être un boulot de dingue pour être efficace dans toutes les langues.

On parle de ce levenstein là ?

image

:grin:

Tu fais comme @GloP raconte: tu mets en place les outils pour dénoncer (il y’a souvent l’option « offensive nickname ») et tu embauches des gens pour vérifier et entériner les sanctions (et mettre à jour les databases de ban).

Maintenant la question de savoir comment tu pourrais anticiper tout ça est plus complexe. On est, en tant que personnes, capable de raisonner plus facilement qu’un ordinateur, d’intérpreter et d’inférer (parenthèse: c’est le gros enjeu de tout ce qui est IA, et qui est souvent simplement « plein de gens qui font le boulot de l’IA jusqu’à ce que l’IA sache faire son taf, si jamais elle y arrive »).

Du coup c’est au final un exercice d’équilibre entre mettre en place des filtres qui vont restreindre l’expression des joueurs (« mais pourquoi je peux pas écrire tel mot? ») et mettre en place des équipes qui vont répondre au cas par cas. Tu ne peux pas faire 100% l’un, ou 100% l’autre, il y’a donc souvent une combinaison des deux.

Dans le premier cas, c’est impossible de penser à tous les cas, tous les caractères et toutes combinaisons qui rendent quelque chose de lisible dans une langue mais complètement indéchiffrable dans une autre (comment tu fais comprendre à un ordinateur que « 80085 » ça peut vouloir dire autre chose? Ou bien comment tu lui fais interpréter ça 凸(ಠ益ಠ)凸 ?). Voire quand un même mot a des sens totalement différents d’une langue à l’autre.

Dans le second, ça coute super cher, et tout le monde ne peut pas se le permettre.

Bref, c’est l’histoire des pénis du MMO Lego. (je suis un mec cool, je vous laisse choisir votre publication préférée)

1 « J'aime »

Ce sujet a été automatiquement fermé après 730 jours. Aucune réponse n’est permise dorénavant.