Date post: | 03-Apr-2015 |
Category: |
Documents |
Upload: | arnaude-parisot |
View: | 105 times |
Download: | 2 times |
Passer à la première page
Classification automatique de documents
Laurent Denoue
Equipe Syscom
Passer à la première page
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 ?
Passer à la première page
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,
Passer à la première page
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>, …)
Passer à la première page
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
Passer à la première page
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)
Passer à la première page
« Clustering »
Différentes méthodes 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)
Passer à la première page
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
Passer à la première page
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.)
Passer à la première page
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
Passer à la première page
« 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
Passer à la première page
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
Passer à la première page
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 !
Passer à la première page
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)
Bc
Cc
c
CdunclusterecpositivefalsecpositivetrueCQualité
)2(
)())(_)(_()(
Passer à la première page
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
Passer à la première page
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
Passer à la première page
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 !
Passer à la première page
kNN (suite…) Problème 2 : modèle vectoriel
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
Passer à la première page
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 ?
Passer à la première page
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
Passer à la première page
Arbres de décision (suite 2…)
Passer à la première page
Naïve Bayes
Naïve Bayes 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
Passer à la première page
Naïve Bayes (suite 1…)
Passer à la première page
Réseaux de neurones
Le perceptron 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
Passer à la première page
Le perceptron
En entrée 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
Passer à la première page
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 »
Passer à la première page
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 diminueDwi = n * Somme sur les exemple d (td-od)xidpuis wi = wi + Dwi
Passer à la première page
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
Passer à la première page
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