Fouille de Données et Média Sociaux
Vincent Guigue UPMC - LIP6
Organisation de l’UE
Outils pour la fouille de données, application sur des média sociaux
◦ Partie 1 (Vincent Guigue)
Sem. 1 2 3 4
Cours Intro Dataiku Texte avancé reco
TME BOW + classif Dataiku word2vec, lda facto. mat.
Sem. 5 6 7
Cours J. Loncelle (Klesia) TME à définir
◦ Partie 2 (Sylvain Lamprier) - Classification dans les graphes - Diffusion dans les réseaux - Architectures Big Data (Talend)
Evaluation de l’UE
◦ 25% Rapport 1 (50/50 : travail en TP/rapport)
◦ 25% Rapport 2
◦ 50% Examen
Manipulation des données textuelles utilisation de Python
Vincent Guigue UPMC - LIP6
Traitements pour la classification de textes
Les données textuelles sont difficiles à gérer :
1 Les corpus sont volumineux, le vocabulaire est grand : - il faut des algorithmes rapides,
- les données ne sont pas toujours stockables en mémoire.
2 La structure des phrases est difficile à gérer.
3 Les mots peuvent prendre plusieurs formes (pluriels...)
4 Les algorithmes de machine learning ont du mal sur des données de grande dimension
Traitements pour la classification de textes Les données textuelles sont difficiles à gérer :
1 Les corpus sont volumineux, le vocabulaire est grand : - il faut des algorithmes rapides,
- les données ne sont pas toujours stockables en mémoire.
Perceptron, SVM (en version rapide), Naive Bayes...
Boosting, Bagging
2 La structure des phrases est difficile à gérer.
On supprime la structure...
3 Les mots peuvent prendre plusieurs formes (pluriels...) Plusieurs approches possibles... (cf plus loin)
4 Les algorithmes de machine learning ont du mal sur des données de grande dimension
On cherche des heuristiques pour supprimer les mots inutiles.
Sacs de mots
Ne sachant pas prendre efficacement en compte la structure des phrases... On l’élimine totalement !
Un document devient alors un comptage des différents mots qui le composent :
Représentationbag of words
SoitV le vocabulaire etd un document :d ∈N|V|
NB :d est (presque toujours) un vecteursparse, c’est à dire composé essentiellement de 0.
Sur un exemple (crédit Sergio Jimenez)
Elimination du bruit : mots similaires
Etant donnée la représentation en sac de mots, il est pénalisant de compter les occurrences deprésidentetprésidentsdans deux cases séparées... Nous allons donc traiter les mots du textes pour les ramener à leurs radicaux :
◦ mangeait, mangera, mangeoire,...→ manger
Lemmatisation : approche basée sur un dictionnaire efficace/il faut un dictionnaire...
Exemple d’outil : treetagger (gratuit, récupérable sur internet)
Stemmatisation : approche statistique de suppression des suffixes rapide, facile à utiliser/ parfois approximatif
cf outils fournis dans le projet
Traitements discriminants : réduction de la dimensionnalité
Les algorithmes de machine learning sont mis en difficulté sur les problèmes de grandes dimensions... Nous cherchons donc à réduire la dimension des données :
Heuristiques :
◦ Elimination des mots peu fréquents
◦ Elimination des mots courts (articles...)
◦ Elimination de tous les éléments inutiles a priori (chiffres...)
Traitements discriminants
Le codagetf-idf permet de faire apparaître les motssaillants, caractéristiques d’un document.
Soit le documentdj tiré de l’ensembleD,ni,j désigne le nombre d’occurrences du motti dansdj :
tfi,j= ni,j
P
knk,j, idfi=log |D|
|{d :ti ∈d}|
tfi,j : fréquence de ti dans le document j.
idfi : pourcentage des documents oùti apparaît (log de l’inverse).
On remplace le codageni,j par le codage tf−idf(i,j) =tfi,j×idfi http://fr.wikipedia.org/wiki/TF-IDF
Traitements discriminants : sélection de va- riables
Il est possible d’utiliser des critères discriminants (donnant un score à chaque mot) pour choisir un sous-ensemble du dictionnaire sur lequel travailler.
Parmi les classiques :
◦ Saillance : Stf−idf(i) =
P
jtf−idf(i,j)
|{tf−idf(i,j)6=0}|
◦ Odds ratio : Sodds(i) = pqi/(1−pi)
i/(1−qi) = pqi(1−qi)
i(1−pi).(souvent utilisé en log). Oùpi est la probabilité d’observer le mot ti dans la classe 1 etqi est la probabilité d’observer ti dans la classe 2.
Présentation des données
Données d’apprentissage :
<100:1:C> Quand je dis chers amis, ...
<100:2:C> D’abord merci de cet ...
...
<100:14:M> Et ce sentiment ...
Le format est le suivant : <ID-Discours :ID-phrase :Etiquette>, C
→Chirac, M → Mitterrand
Données de test, sans les étiquettes :
<100:1> Quand je dis chers amis, ...
<100:2> D’abord merci de cet ...
...
Deuxième base de données (Pour s’entrainer)
Crédit : Sergio Jimenez
Deuxième base de données (Pour s’entrainer)
Deuxième base de données (Pour s’entrainer)
Crédit : Sergio Jimenez
Comment évaluer les performances ?
◦ Métriques d’évaluation
- Taux de reconnaissance NNcorrect
tot
- Précision (dans la classe c) NNcorrectcc predits
- Rappel (dans la classe c) (=couverture) NNcorrectcc tot
- F1 (1+β2)precision·rappel β2precision+rappel
- ROC (faux posVS vrai pos) / AUC
◦ Procédures
- Apprentissage/test
- Validation croisée - Leave-one-out
Analyse qualitative
Regarder les poids des mots du classifieur :
annoying 37.2593
another -8.458
any 3.391
anyone -1.4651
anything -15.5326
anyway 29.2124
apparently 12.5416
...
attention -1.2901
audience 1.7331
audiences -3.7323
away -14.9303
awful 30.8509