Classification automatique de documents Laurent Denoue Equipe Syscom
Introduction Trop de documents à trier 30/03/2017 Introduction Trop de documents à trier les experts humains coûtent cher « Clustering » vs. Classification Clustering = non supervisé Classification = supervisé Application aux documents Quelles représentations ? Réduction du nombre de termes ?
Représentation des documents (indexation) Extraction des mots Simple (mot=suite de lettres) Avancé (Porter) Sophistiqué (lemmatisation) Représentation de chaque doc. Par un vecteur de dimension N N = nombre total de mots distincts Quelles valeurs dans le vecteur ? Binaire, TDIDF,
Quelques remarques sur la représentation choisie « sac de mots » on perd l ’information sur la position des mots « collocations » on calcule les 1-gram, 2-gram, … 3-gram = « Word Wide Web » Taille des vecteurs et de la matrice doc/mots ne représenter que les cases non nulles ! Prendre en compte le format des documents par exemple en HTML (<H1>, <B>, …)
Mesure de la similarité entre deux documents Le modèle vectoriel permet d ’utiliser des mesures connues comme Intersection (nombre de mots communs) Cosinus mesure Euclidienne à N dimensions
Réduction du nombre de termes Nombre de termes est très grand ex. 100 doc. de 5000 mots => 500000 termes ! Réduction facile pour la classification exemple : information gain Mais comment faire pour le « clustering » ? Utiliser les fréquences des mots Utiliser des bases externes ? (WordNet)
« Clustering » Différentes méthodes Différents résultats raisonnement basé sur les cas et dérivés méthodes probabilistes réseaux de neurones Différents résultats classes séparées et plates (Kohonen) classes séparées et hiérarchisées (HAC) classes qui se recoupent (kNN)
Clustering k-NN et dérivés 1966 : K-Nearest Neighbors (kNN) en o(nK) choix du nombre K de cluster AVANT choix au hasard de K documents rapprochement des documents proches recouvrements possibles (parfois intéressant) 1968 : Single Pass en o(n) traitement séquentiel des documents choix arbitraire d ’un seuil de similarité Solution : best-first iterative partitioning on cherche le plus similaire à chaque fois
Clustering hiérarchique Hierarchical Agglomerative Clustering (HAC) production d ’une hiérarchie de classes au départ un cluster par document rapprochement des deux clusters les plus proches jusqu’à n ’avoir qu ’un seul cluster Plusieurs versions de HAC single-linkage (Similarité = Max des similarités) group-average (Similarité = moyenne des sim.) complete-linkage (Similarité = Min des sim.)
Suffix Tree Clustering Extraction des phrases des documents une variante des collocations étendue au documents entiers à chaque phrase : liste des documents Similarité = f(longueur de la phrase) Avantages résultat indépendant de l’ordre des documents algorithme INCREMENTAL !! pas de choix arbitraire du nombre de clusters
« Self Organizing Maps » (SOM) ou Cartes de Kohonen Réseau de neurones à deux niveaux en entrée le vecteur d ’un document en sortie un réseau à deux dimensions (carte) Allure de la carte
Algorithme d’une SOM Algorithme poids au hasard au départ on soumet au réseau chaque document on calcule le neurone vainqueur (le plus actif) on augmente son poids ET celui de ses voisins on répète au minimum 5 fois sur les N documents
Utilisation d’une SOM Visualisation directe du réseau de sortie sous forme 2D on peut augmenter avec des couleurs et du relief Classification de nouveaux documents on soumet son vecteur à la SOM on regarde les nœuds les plus actifs sur la carte on peut décider de « valider » ce choix en modifiant les poids du réseau !
Evaluation d’un clustering Mesure de l ’entropie des clusters Entropie mesure le degré de cohérence d ’un cluster par rapport aux autres ou encore des fonctions ad-hoc Si on possède un jeu d’essai exemple avec Reuters (comme classification)
Classification supervisée Pourquoi ? Yahoo! automatique Catalogues des bibliothèques où un sché Bookmarks filtrage de documents (emails, news) Différent du « clustering » ici on connaît les classes à l’avance on a des exemples But : découvrir le modèle derrière ces exemples pour prédir la classification de nouveaux documents
Comment ? Raisonnement inductif on observe les données (documents/classes) on induit un modèle (de la connaissance) sauf pour raisonnement basé sur les cas on ne cherche pas de modèle Plusieurs méthodes k plus proches voisins (k-NN) arbres de décision Naïve Bayes Réseaux de neurones Programmation génétique
K plus proches voisins (ou K nearest neighbors, kNN) Choisir K Choisir la fonction de similarité entre deux docs. « Vectoriser » les documents Algorithme trouver les K plus proches documents déjà classés répondre la moyenne des K plus proches Problème 1 : le choix de K est important ! Pondération des documents en fonction de leur distance au nouveau document prise en compte de tous les documents !
kNN (suite…) Problème 2 : modèle vectoriel Solution tous les attributs ont la même importance ! Mais 2 mots peuvent être discriminants ! (voir Arbres de décision) Solution pondération des attributs utilisation de documents exemples + test Problème 3 : classement d ’un nouveau cas trop de calculs !! Solution : category-based ou cluster-based
Arbres de décision Méthode très populaire exemples : ID3 (1986) et C4.5 (1993)de Quinlan Qu’est-ce qu’un arbre de décision ?
Arbres de décision (suite 1…) Représentation des exemples : représenter les exemples par Attribut/Valeur ex. pour les documents : vecteur de termes Cœur de l ’algorithme = quel attribut tester ? Entropie puis Information gain Attention à l ’apprentissage par cœur idée : réduire la profondeur de l’arbre Comment ? utiliser un jeu de test en plus du jeu d ’exemples
Arbres de décision (suite 2…)
Naïve Bayes Naïve Bayes Idée Nommé d ’après le théorème de Bayes méthode très bien adapté aux documents l ’hypothèse d ’indépendance des variables du théorème ne dérange pas en réalité Idée utiliser les probabilités de chaque classe et les fréquences des mots associés à chaque classe
Naïve Bayes (suite 1…)
Réseaux de neurones Le perceptron Fonction Sigmoid combinaison linéaire des entrées fonction de seuil à choisir « à la main » fonctions linéairement séparables d ’où critique en 1969 par Minsky et Papert Fonction Sigmoid permet d ’apprendre des fonctions non séparables linéairement
Le perceptron En entrée En sortie : Oui/Non un vecteur de dimension n : (x1,x2,…,xn) une valeur de seuil En sortie : Oui/Non Topologie (= structure du réseau) un lien pondéré wi entre chaque entrée et la sortie Fonction sortie = w1x1 + w2x2 + … + wnxn
Perceptron : apprentissage wi = wi + n(t-o)xi n = taux d'apprentissage (0.1 puis diminue...) t = réponse que le perceptron aurait dû donner o = réponse actuelle du perceptron Problème ne fonctionne que pour le linéaire Solution apprentissage « règle Delta »
Réseaux de neurones (suite 1…) Règle Delta (ou « Gradient Descent) à chaque étape de l ’apprentissage on cherche les wi pour que l ’erreur E globale du réseau diminue Dwi = n * Somme sur les exemple d (td-od)xid puis wi = wi + Dwi
Réseaux de neurones (suite 2…) Des variantes du « Delta Rule » pour éviter les minimum locaux de l ’erreur 1985 : algorithme de « BackPropagation » apprentissage de réseaux à plusieurs sorties et plusieurs couches utilisation de la fonction Sigmoid dans un neurone au lieu d’une simple combinaison linéaire Sigmoid = 1 / (1 + e-net) avec net = w1x1 + w2x2 + ... + wnxn
Réseaux de neurone pour la classification des documents Coder chaque document sous forme de vecteur Présenter chaque document en entrée Voir la sortie Corriger les poids du réseau Présenter tous les exemples plusieurs fois tant qu’ils ne sont pas tous bien classés même remarque pour « overfitting » utilisation d’un jeu de test