[BOT] - Conditions de filtrage de messages

Fermé
greg160 Messages postés 621 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 21 septembre 2017 - 31 oct. 2016 à 10:51
greg160 Messages postés 621 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 21 septembre 2017 - 1 nov. 2016 à 01:38
Bonjour,

Je fais des streams sur la plateforme Twitch depuis plus d'un an, et j'utilise mes connaissances en programmation pour développer un bot qui me convient.

J'ai créé un algorithme qui filtre les messages, cependant après essai avec ma communauté, celui ci se révèle inefficace car trop strict, et n'intervient pas sur les bons messages.

L'algorithme est organisé par 3 filtres :

- Le premier pour le flood/ le spam (répétition de mots, caractères, etc...) : Celui ci semble fonctionner, cependant faire ceci fait intervenir le bot :

"cool pool doom" est un message bloqué car il y a répétition de "oo" 3 fois dans tout le message.

- Le deuxième lui filtre les majuscules.

- Le dernier la longueur, pour éviter d'avoir à lire des messages trop longs.

Les filtres sont activables/désactivables à souhait, et sont régis par une sensibilité qui va de 1 à 10.

Je ne souhaite pas avoir de réponse en code, juste quelque chose de ce genre :

Voici l'algorithme actuel :

Si le spam est activé :
Pour chaque caractère du message, si il est répété :
On incrémente le nombre de fois où des caractères sont répétés dans la phrase dans la valeur 'char_total_rep'
Tant qu'il continue d'être répété, on incrémente une valeur qui compte le nombre de répétitions
Lorsqu'il n'est plus répété, si il s'agit du caractère le plus répété, on enregistre le nombre de fois où il est répété dans la valeur 'char_max_rep'

Conditions de filtrage :
Si le caractère le plus répété l'est 3 + (10-sensibilité), alors on sévit.
Si le nombre de fois où un caractère est répété est supérieur à 4 + (10-sensibilité), on sévit.

Même principe pour chaque mot :
Si le mot le plus répété l'est 2 + (10-sensibilité), on sévit
Si le nombre de fois où un mot est répété est supérieur à 3 + (10 - sensibilité), on sévit.

Pour les majuscules, je compte juste le nombre de majuscules.
Si il y a plus de 5 + (10 - sensibilité), on sévit.

Pour la longueur, il y a deux choses :
- La longueur de chaque mot : Si il y a plus de 22 + (10 - sensibilité), alors on sévit (anticonstitutionnellement passe si la sensibilité est réglée sur 7)

- La longueur de la phrase : Si il y a plus de 140 + (10 - sensibilité) * 10 si la sensibilité est supérieur à 6, sinon 140 + (10 - sensibilité) * 100, alors on sévit.

Malheureusement, cet algorithme et ces conditions ne fonctionnent pas pour un filtrage correct, et je ne sais pas comment régler ce problème. Avez vous des idées ?

Merci d'avance



1 réponse

[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 1 043
31 oct. 2016 à 14:39
Salut greg160,

La façon la plus optimale de traiter cela serait d'utiliser un filtre bayésien, que tu entraînes à reconnaître le spam du ham, comme pour le spam d'e-mails.

Tu n'as pas précisé en quel langage du programmes... tu pourrais voir s'il n'existe pas une bibliothèque utilisable pour cela.

Par exemple, en Php :

https://github.com/benwaine/BayesPHP
(bibliothèque non testée)


Dal
0
greg160 Messages postés 621 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 21 septembre 2017 192
31 oct. 2016 à 18:29
Je travaille en Java, je pensais l'avoir précisé mais non :(
0
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 3 005 > greg160 Messages postés 621 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 21 septembre 2017
31 oct. 2016 à 21:20
En effet tu avais posté ta question dans le forum Java mais puisque tu "ne souhaite pas avoir de réponse en code" j'avais jugé bon de te déplacer dans le forum générique afin de recueillir le plus de réponses possibles à ton problème indépendamment du langage de chacun.

Au passage quand tu dis Java ne serait ce pas plutôt JavaScript ?
0
greg160 Messages postés 621 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 21 septembre 2017 192
1 nov. 2016 à 01:37
Non, je parle bien de Java
0
greg160 Messages postés 621 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 21 septembre 2017 192
1 nov. 2016 à 01:38
Et ce n'est pas vraiment que je ne veux pas de code, c'est que j'aimerais fixer quelque chose de solide avant de passer à la prog'
0