Algorithme pour le web Géraldine Schneider Application d’algorithmes de classification automatique pour la détection des contenus racistes sur l’Internet Romain Vinot, Natalia Grabar, Mathieu Valette École Nationale Supérieure des Télécommunications Centre de Recherche en Ingénierie Multilingue - INALCO
Sommaire Introduction Constitution du corpus Description des algorithmes Résultats & Discussions Conclusion
Introduction Définition du problème Internet Grande quantité d’informations Manque de maîtrise des contenus Plusieurs méthodes développées pour pallier ce problème
Introduction 2 approches développées Filtrage des informations par liste noire liste d’URLs constituée au préalable simple blocage des URL des sites indésirables par mots clef liste de mots clef constituée au préalable simple blocage des pages contenant les mots clef indésirables
Introduction Filtrage par liste noire simple blocage des URL des sites considérés comme racistes LIMITES: méthode statique, pas intelligente pour une validité de la méthode, besoin de mettre à jour très régulièrement la liste car le web est en constante évolution
Introduction Filtrage par liste de mots clef simple blocage des sites contenant au moins un des mots clef de la liste LIMITES: méthode statique pour une validité de la méthode, besoin de mettre à jour très régulièrement la liste car la langue évolue blocage sans connaître le contexte du mot, possibilité de traiter du racisme dans un texte sans avoir de propos raciste variabilité du contenu: utilisation de mots neutres avec sous-entendus
Introduction 2 approches peu pertinentes si elles ne sont pas accompagnées d’une analyse linguistique du document Combinaison d’indices venant de plusieurs niveaux d’unités linguistiques Caractères Morphèmes Catégories syntaxiques Expressions complexes Isotopies sémantiques Code HTML …
Introduction Méthode proposée dans l’article Apprentissage automatique pour classifier de manière automatique des textes selon 2 catégories Raciste Non raciste
CONSTITUTION DU CORPUS Classification automatique sur des pages du web corpus différents des corpus habituels web utilisé comme corpus: en particulier, corpus basé sur les moteurs de recherche combinés à des mots clefs dits sensibles Expériences présentées 739 documents 286 pages racistes, 444 611 occurrences, 43 sites 453 pages antiracistes, 941 007 occ., 81 sites
CONSTITUTION DU CORPUS 2 étapes pour la constitution du corpus Collecte massive de documents en interrogeant manuellement ou automatiquement les sites Classification manuelle des pages selon 6 catégories raciste antiraciste révisionniste antirévisionniste non pertinent indécidable
DESCRIPTION DES ALGORITHMES Intervention des algorithmes au niveau lexical avec manipulation des tokens des documents comme unités descriptives 3 étapes: Choix du type de document Représentation vectorielle des documents Choix de l’algorithme de classification
DESCRIPTION DES ALGORITHMES Choix du type de document Classification basée sur du texte brut: suppression de tous les caractères non alphabétique (chiffres, ponctuation) du texte avec considération des nombres du texte avec considération du code HTML Influence des nombres et source HTML dans la performance de la classification des documents?
DESCRIPTION DES ALGORITHMES Représentation vectorielle des documents appelée sac à mots Pour classifier ou comparer des documents, on peut utiliser une représentation vectorielle de documents, puis des mesures de distances et de similarité Un document est une suite de mots (ou d'étiquettes, de lettres,etc…) Un vecteur est une suite de chiffres Valeurs traitées dans un dernier temps par l’algorithme de classification
DESCRIPTION DES ALGORITHMES Exemple (représentation vectorielle) 4 documents à 2 dimensions (lexique constitué de 2 mots) Doc1 = je je vais ; Doc2 = je je je je vais vais ; Doc3 = je vais vais ; Doc4 = vais vais 4 vecteurs tirés des documents V1 = {2,1} ; V2 = {4,2} ; V3 = {1,2} ; V4 = {0,2}
DESCRIPTION DES ALGORITHMES Choix de l’algorithme de classification 3 algorithmes proposés et traités Rocchio K plus proches voisins (k-PPV) Support Vector Machine (SVM)
DESCRIPTION DES ALGORITHMES Algorithme ROCCHIO un des plus vieux algorithme de classification (1971) méthode probabiliste, simple permet de construire un vecteur représentatif d'une catégorie à partir des documents pertinents pour cette catégorie traitement des données construction d’un vecteur de classe
DESCRIPTION DES ALGORITHMES Construction des vecteurs normalisation des vecteurs même méthode que pour la représentation vectorielle barycentre des exemples: coefficient positif pour les exemples de la classe et négatif pour les autres
DESCRIPTION DES ALGORITHMES Construction du vecteur de la classe à partir des vecteurs des documents jugés pertinents pour cette classe. Classement des documents: calcul de la distance euclidienne entre la représentation vectorielle du document et celle de chacune des classes. document classé dans classe la plus proche
DESCRIPTION DES ALGORITHMES Algorithme k-PPV algorithme de reconnaissance des formes apprentissage: stockage d’exemples étiquettés classement: calcul de la distance euclidienne entre la représentation vectorielle du document et celle des exemples du corpus Les k-éléments les plus proches sont sélectionnés et le document est assigné à la classe majoritaire
DESCRIPTION DES ALGORITHMES Algorithme SVM grande performance pour la classification textuelle (1995) pour 2 classes d’exemples donnés, but: trouver un classificateur pour séparer les données et maximiser la distance entre les 2 classes. classificateur linéaire: hyperplan
DESCRIPTION DES ALGORITHMES Plusieurs notions Hyperplan: sépare les 2 ensembles de points (de documents) Vecteurs de support: points les plus proches qui déterminent l’hyperplan Marge: hyperplan dont la distance minimale aux exemples est maximale
RESULTATS & DISCUSSION Performances des algorithmes Rocchio: 0.89 10-PPV: 0.94 SVM: 0.95 Performance SVM > 10-PPV > Rocchio Très bonnes performances pour les 3 algorithmes: supérieure à 0.9
RESULTATS & DISCUSSION Erreurs de classification: textes antiracistes mal classés textes littéraires: pas le style argumentatif de l’antiracisme textes à fin réthorique avec antiphrases et citations en abondance textes racistes mal classés textes idéologiques et politiques euphémismes en abondance
RESULTATS & DISCUSSION Remarques discours antiraciste: homogène discours raciste: varié, exprimé dans des styles variés + facile de classer un texte antiraciste textes racistes jamais exprimés de manière explicite, recours aux euphémismes et termes neutres
RESULTATS & DISCUSSION Influence des nombres et code HTML Légère amélioration de la performance des algorithmes avec considération des nombres et code HTML Texte brut Avec nombres Avec HTML Rocchio 0.89 0.94 10-PPV 0.95 SVM 0.96 Amélioration de la performance plus pertinente sur les 30-PPV 0.92 sur texte brut 0.96 avec code HTML
RESULTATS & DISCUSSION Explications de ces influences [Nombres] caractéristiques racistes dates récentes: référence à de nombreux faits divers, lien avec la réalité actuelle peu de référence historique
RESULTATS & DISCUSSION Explications de ces influences [HTML] caractéristiques racistes balise pics: affichage images, dessins, bannières, … balise meta: notation de liste de mots clef police arial et verdana caractéristiques antiracistes balise class: utilisation de Javascript
CONCLUSION Algorithme de classification automatique Difficultés Fonctionne sur le même principe que le filtrage des mots clef Actualisation plus facile: réapprentissage automatique Difficultés trouver la partie caractéristique du racisme: partie infime d’un document propos racistes implicites, euphémisation trop forte