Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
restricted:cm2 [2020/04/27 00:17] – edauce | restricted:cm2 [2020/04/27 10:44] (Version actuelle) – [Entropie] edauce | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ===== 3. Statistiques sur les textes ===== | ||
+ | |||
+ | Soit un document d : | ||
+ | * constitué de T symboles d[1], …, d[i], …. | ||
+ | * appartenant à l' | ||
+ | |||
+ | |||
+ | Une description statistique d’un texte correspond à un histogramme qui porte sur un ensemble de symboles : | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Grâce à ces mesures, on souhaite pouvoir comparer 2 textes : d1 et d2. On veut trouver les distances / similarités basée sur cette mesure | ||
+ | |||
+ | * l’ordre des symboles ou des termes est ignoré | ||
+ | * le sens du texte est ignorée | ||
+ | |||
+ | on utilise la théorie de l’information | ||
+ | * information | ||
+ | * divergence KL | ||
+ | * Entropie, entropie croisée | ||
+ | |||
+ | <note tip> | ||
+ | Modèles probabiliste : la suite de symbole observés (le message) est générée par un processus aléatoire: | ||
+ | d=(d1,d2,...,dT) | ||
+ | * chaque di est la réalisation d'un tirage aléatoire | ||
+ | * obéissant à une distribution de probabilité p | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Les symboles sont au choix : | ||
+ | * des caractères appartenant à un alphabet | ||
+ | * des termes appartenant à un vocabulaire | ||
+ | </ | ||
+ | |||
+ | ==== 3.1 Modèles probabilistes ==== | ||
+ | |||
+ | Les modèles probabilistes interprètent les données de type texte comme étant générées par une distribution de probabilité P inconnue. | ||
+ | |||
+ | La distribution P définit le langage utilisé dans le texte. On ne s' | ||
+ | |||
+ | === Fréquence d'un symbole === | ||
+ | |||
+ | Soit α∈A un symbole de l' | ||
+ | P(X=α)=|ω∈Ω:X=α||Ω| | ||
+ | où Ω représente l' | ||
+ | |||
+ | On a par définition~: | ||
+ | ∑α∈VP(X=α)=1 | ||
+ | |||
+ | La fréquence empirique du symbole α dans le document d | ||
+ | est donnée par~: | ||
+ | <note important> | ||
+ | fd(α)=|{i:d[i]=α}||d| | ||
+ | </ | ||
+ | où |d| est le nombre de caractères dans le document. | ||
+ | |||
+ | <note tip> | ||
+ | **Fréquence des lettres en français** | ||
+ | {{http:// | ||
+ | </ | ||
+ | |||
+ | * Voir aussi : {{https:// | ||
+ | |||
+ | === Représentation vectorielle === | ||
+ | |||
+ | On suppose que les caractères d'un langage L donné sont numérotés de 1 à K, soit AL={α1,...,αk,...αK}. | ||
+ | |||
+ | On notera pL le vecteur des fréquences des caractères dans un langage L donné, où pL(k) donne la fréquence du kème caractère. | ||
+ | |||
+ | < | ||
+ | **Exemple**: | ||
+ | pFrançais=(0.0942,0.0102,0.0264,0.0339,0.01587,0.095,0.0104,0.0077,0.0841,0.0089,...) | ||
+ | où | ||
+ | * p1=0.0942 est la fréquence de la lettre ' | ||
+ | * p2=0.0102 est la fréquence d' | ||
+ | * etc. | ||
+ | </ | ||
+ | avec bien sûr : | ||
+ | ∑k∈{1,...,K}pL(k)=1 | ||
+ | |||
+ | === Probabilité jointe === | ||
+ | |||
+ | On s' | ||
+ | |||
+ | Soient α et β deux symboles de l' | ||
+ | |||
+ | La probabilité jointe est définie comme : | ||
+ | P(X=α,Y=β)=|ξ∈Ξ:(X,Y)=(α,β)||Ξ| | ||
+ | où Ξ est l' | ||
+ | |||
+ | <note tip> | ||
+ | {{public: | ||
+ | </ | ||
+ | |||
+ | avec par définition: | ||
+ | ∑(α,β)∈A×AP(X=α,Y=β)=1 | ||
+ | |||
+ | La **probabilité jointe empirique** est donnée par~: | ||
+ | <note important> | ||
+ | fd(α,β)=|{i:d[i]=α,d[i+1]=β}||d|−1 | ||
+ | </ | ||
+ | * Les séquences de deux caractères sont classiquement appelées des // | ||
+ | * On définit de même les // | ||
+ | * etc. | ||
+ | |||
+ | |||
+ | === Représentation matricielle === | ||
+ | |||
+ | On notera PL la matrice des fréquences des bigrammes dans un langage L donné, où Pij donne la fréquence du bigramme (αi,αj). | ||
+ | |||
+ | < | ||
+ | **Exemple**: | ||
+ | $$\boldsymbol{P}_\text{Français} = 10^{-5} \times \left( | ||
+ | \begin{array}{cccc} | ||
+ | 1.5 & 116.8 & 199.1 & ...\\ | ||
+ | 62.8 & 1.6 & 0.14 & ...\\ | ||
+ | 184.8 & 0 & 52.4 & ...\\ | ||
+ | & | ||
+ | \end{array} | ||
+ | \right)$$ | ||
+ | |||
+ | |||
+ | où | ||
+ | * P11=1.5×10−5 est la fréquence du bigramme ' | ||
+ | * P12=116.8×10−5 est la fréquence d' | ||
+ | * etc. | ||
+ | </ | ||
+ | |||
+ | avec bien sûr : | ||
+ | ∑(i,j)∈{1,...,K}2Pij=1 | ||
+ | |||
+ | <note tip> | ||
+ | voir {{http:// | ||
+ | </ | ||
+ | |||
+ | === Corpus de documents === | ||
+ | Soit B un corpus de documents, constitué de n documents. | ||
+ | < | ||
+ | La fréquence empirique du symbole α dans le corpus B | ||
+ | est donnée par~: | ||
+ | fB(α)=|{(i,j):di∈B,di[j]=α}||B| | ||
+ | où |B| est le nombre total de caractères dans le corpus. | ||
+ | |||
+ | La fréquence jointe du couple (α,β) est donnée par | ||
+ | fB(α,β)=|{(i,j):di∈B,(di[j],di[j+1])=(α,β)}||B|−n | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | === Probabilité conditionnelle === | ||
+ | |||
+ | La **probabilité conditionnelle** du caractère β étant donné le caractère précédent α est définie comme : | ||
+ | |||
+ | P(Y=β|X=α)=|ξ∈Ξ:(X,Y)=(α,β)||ξ∈Ξ:X=α| | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | {{public: | ||
+ | |||
+ | </ | ||
+ | |||
+ | qui se calcule empiriquement comme : | ||
+ | |||
+ | fd(β|α)=|{i:d[i]=α,d[i+1]=β}||{j:d[j]=α}| | ||
+ | |||
+ | < | ||
+ | * La probabilité P(.|αi) se représente sous forme vectorielle~: | ||
+ | |||
+ | * L' | ||
+ | $$ | ||
+ | \begin{array}{cl} | ||
+ | M &= \left( | ||
+ | \begin{array}{c} | ||
+ | \boldsymbol{\mu}_1\\ | ||
+ | \boldsymbol{\mu}_2\\ | ||
+ | ... | ||
+ | \end{array} | ||
+ | \right) | ||
+ | \\ | ||
+ | & | ||
+ | \begin{array}{cccc} | ||
+ | P(\alpha_1|\alpha_1)& | ||
+ | P(\alpha_1|\alpha_2)& | ||
+ | & | ||
+ | \end{array} | ||
+ | \right) | ||
+ | \end{array} | ||
+ | $$ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Sachant que P(α)=∑β∈AP(α,β), on a : | ||
+ | μi=Pi,:pi | ||
+ | |||
+ | Soit en français : | ||
+ | |||
+ | < | ||
+ | $$ | ||
+ | M_\text{Français} = \left( | ||
+ | \begin{array}{cccc} | ||
+ | 0.0016 & 0.0124 & 0.0211 & ...\\ | ||
+ | 0.0615 & 0.0016 & 0.0001 & ...\\ | ||
+ | 0.0700 & 0.0000 & 0.0198 & ...\\ | ||
+ | & ... &&& | ||
+ | \end{array} | ||
+ | \right) | ||
+ | $$ | ||
+ | où : | ||
+ | * M11 est la probabilité de voir un ' | ||
+ | * M12 est la probabilité de voir un ' | ||
+ | * etc. | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | La matrice des probabilités conditionnelles M permet de définir un **modèle génératif** de langage inspiré des **processus aléatoires de Markov**: | ||
+ | * La production d'un mot ou d'un texte est modélisée comme un parcours aléatoire sur une chaîne de Markov définie par la matrice de transitions M. | ||
+ | * La fréquence d' | ||
+ | |||
+ | < | ||
+ | {{public: | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== 3.2 Comparer des documents | ||
+ | |||
+ | On considère deux langues L1 et L2 utilisant le même alphabet. | ||
+ | La différence de fréquence des caractères dans ces deux langages permet de les distinguer. | ||
+ | il est ainsi possible de définir une distance entre deux langages basée sur les histogrammes de fréquence empirique des caractères dans les deux langages. | ||
+ | |||
+ | L’information apportée par la lecture du symbole α est définie comme : | ||
+ | I(α)=−log2(P(X=α)) | ||
+ | où pα=P(X=α) est la fréquence d’apparition de ce symbole dans la langue considérée. | ||
+ | |||
+ | L' | ||
+ | Si le symbole α est “rare” (pα petit), l’information qu’il apporte est élevée. Si le symbole | ||
+ | |||
+ | ==== Entropie ==== | ||
+ | |||
+ | L’entropie d’une langue est définie comme l' | ||
+ | H(L)=EX(I(X))=−EX(log2(P(X)) | ||
+ | i.e. | ||
+ | H(L)=−∑k∈{1,...,K}P(X=αk)log2(P(X=αk)) | ||
+ | |||
+ | <note tip> | ||
+ | L’entropie représente la surprise moyenne provoquée par une production de symboles. Une entropie faible indique que la séquence est très prévisible, | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | L’entropie d’un message m de taille T, selon le modèle de langage L donné, est définie comme : | ||
+ | H(m)=E(I(m[t]))=−E(log2(pL(m[t])) | ||
+ | i.e. | ||
+ | H(m)=−1T∑tlog2(pL(m[t])) | ||
+ | |||
+ | </ | ||
+ | |||
+ | < | ||
+ | Exos : | ||
+ | * pour quels types de distribution l’entropie est-elle minimale? maximale? | ||
+ | * quelle est l’entropie d’un message dont les probas d’apparition des termes obéissent à une loi de puissance : | ||
+ | C=1∑k1k | ||
+ | p(αk)=Ck | ||
+ | </ | ||
+ | |||
+ | ==== Divergence de Kullback-Leibler ==== | ||
+ | |||
+ | Pour comparer deux langues L1etL2, | ||
+ | |||
+ | D(L1||L2)=∑k∈{1,...,K}P1(X=αk)log2(P1(X=αk)P2(X=αk)) | ||
+ | |||
+ | où P1 désigne la distribution des symboles du langage L1 et P2 la distribution des symboles du langage L2. | ||
+ | |||
+ | <note important> | ||
+ | * La divergence de K-L est positive. | ||
+ | * Elle vaut 0 si les deux distributions sont identiques. | ||
+ | </ | ||
+ | |||
+ | === Comparer 2 messages === | ||
+ | Soient d1 et d2 deux textes pour lesquels on a calculé les histogramme des fréquences empiriques: f1 et f2 . | ||
+ | |||
+ | La divergence empirique de Kullback Leibler est une mesure de dissimilarité (l' | ||
+ | D(d1||d2)=∑α∈d1⋂d2f1(α)log2(f1(α)f2(α)) | ||
+ | |||
+ | === Classer des messages === | ||
+ | Il arrive que l'on ne sache pas à l' | ||
+ | |||
+ | Soit f la fréquence empirique des symboles de m. | ||
+ | |||
+ | Si m est produit par L1, | ||
+ | D(f||p1)<D(f||p2) | ||
+ | soit | ||
+ | ∑α∈df(α)log2(f(α)p1(α))<∑α∈df(α)log2(f(α)p2(α)) | ||
+ | soit : | ||
+ | ∑α∈df(α)log2(p1(α)p2(α))>0 | ||
+ | |||
+ | <note tip> | ||
+ | Soit m un message de taille T. | ||
+ | Pour savoir si le message appartient au langage L1 ou au langage L2, | ||
+ | Test=1T∑tlog2(p1(m[t]p2(m[t])) | ||
+ | * Si Test > 0, il est plus probable que m obéisse au langage L1 | ||
+ | * Si Test < 0, il est plus probable que m obéisse au langage L2 | ||
+ | </ | ||
+ | On peut ainsi produire un classifieur basé sur les modèles probabilistes p1 et p2. | ||
+ | |||
+ | Utilisation : | ||
+ | * Deviner la langue d'un document | ||
+ | * Distinguer les messages frauduleux des messages courants | ||
+ | * etc. | ||
+ | |||