[BOT] - Conditions de filtrage de messages
greg160
Messages postés
729
Statut
Membre
-
greg160 Messages postés 729 Statut Membre -
greg160 Messages postés 729 Statut Membre -
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
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
A voir également:
- [BOT] - Conditions de filtrage de messages
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Google messages - Accueil - Messagerie instantanée
- Messages supprimés whatsapp - Guide
- Comment effacer les messages sur google - Guide
1 réponse
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
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
Au passage quand tu dis Java ne serait ce pas plutôt JavaScript ?