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 : $d_1$ et $d_2$. 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 = (d_1, d_2, ..., d_T$) | ||
+ | * chaque $d_i$ 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 $\alpha \in A$ un symbole de l' | ||
+ | $$P(X=\alpha) = \frac{|\omega \in \Omega : X=\alpha|}{|\Omega|}$$ | ||
+ | où $\Omega$ représente l' | ||
+ | |||
+ | On a par définition~: | ||
+ | $$\sum_{\alpha \in V} P(X=\alpha) = 1$$ | ||
+ | |||
+ | La fréquence empirique du symbole $\alpha$ dans le document $d$ | ||
+ | est donnée par~: | ||
+ | <note important> | ||
+ | $$f_d(\alpha) = \frac{|\{i: | ||
+ | </ | ||
+ | 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 $\mathcal{L}$ donné sont numérotés de 1 à $K$, soit $A_\mathcal{L} = \{\alpha_1, | ||
+ | |||
+ | On notera $\boldsymbol{p}_\mathcal{L}$ le vecteur des fréquences des caractères dans un langage $\mathcal{L}$ donné, où $p_\mathcal{L}(k)$ donne la fréquence du $k^{ème}$ caractère. | ||
+ | |||
+ | < | ||
+ | **Exemple**: | ||
+ | $$\boldsymbol{p}_\text{Français} = (0.0942, 0.0102, 0.0264, | ||
+ | où | ||
+ | * $p_1 = 0.0942$ est la fréquence de la lettre ' | ||
+ | * $p_2 = 0.0102$ est la fréquence d' | ||
+ | * etc. | ||
+ | </ | ||
+ | avec bien sûr : | ||
+ | $$\sum_{k\in\{1, | ||
+ | |||
+ | === Probabilité jointe === | ||
+ | |||
+ | On s' | ||
+ | |||
+ | Soient $\alpha$ et $\beta$ deux symboles de l' | ||
+ | |||
+ | La probabilité jointe est définie comme : | ||
+ | $$P(X=\alpha, | ||
+ | où $\Xi$ est l' | ||
+ | |||
+ | <note tip> | ||
+ | {{public: | ||
+ | </ | ||
+ | |||
+ | avec par définition: | ||
+ | $$\sum_{(\alpha, | ||
+ | |||
+ | La **probabilité jointe empirique** est donnée par~: | ||
+ | <note important> | ||
+ | $$f_d(\alpha, | ||
+ | </ | ||
+ | * 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 $\boldsymbol{P}_\mathcal{L}$ la matrice des fréquences des bigrammes dans un langage $\mathcal{L}$ donné, où $P_{ij}$ donne la fréquence du bigramme $(\alpha_i, | ||
+ | |||
+ | < | ||
+ | **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ù | ||
+ | * $P_{11} = 1.5 \times 10^{-5}$ est la fréquence du bigramme ' | ||
+ | * $P_{12} = 116.8 \times 10^{-5}$ est la fréquence d' | ||
+ | * etc. | ||
+ | </ | ||
+ | |||
+ | avec bien sûr : | ||
+ | $$\sum_{(i, | ||
+ | |||
+ | <note tip> | ||
+ | voir {{http:// | ||
+ | </ | ||
+ | |||
+ | === Corpus de documents === | ||
+ | Soit $B$ un corpus de documents, constitué de $n$ documents. | ||
+ | < | ||
+ | La fréquence empirique du symbole $\alpha$ dans le corpus $B$ | ||
+ | est donnée par~: | ||
+ | $$f_B(\alpha) = \frac{|\{(i, | ||
+ | où |B| est le nombre total de caractères dans le corpus. | ||
+ | |||
+ | La fréquence jointe du couple $(\alpha, | ||
+ | $$f_B(\alpha, | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | === Probabilité conditionnelle === | ||
+ | |||
+ | La **probabilité conditionnelle** du caractère $\beta$ étant donné le caractère précédent $\alpha$ est définie comme : | ||
+ | |||
+ | $$P(Y = \beta | X=\alpha) = \frac{|\xi \in \Xi : (X, | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | {{public: | ||
+ | |||
+ | </ | ||
+ | |||
+ | qui se calcule empiriquement comme : | ||
+ | |||
+ | $$f_d(\beta|\alpha) = \frac{|\{i: | ||
+ | |||
+ | < | ||
+ | * La probabilité $P(.|\alpha_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(\alpha) = \sum_{\beta \in A} P(\alpha, \beta)$, on a : | ||
+ | $$\boldsymbol{\mu}_i = \frac{P_{i,: | ||
+ | |||
+ | 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ù : | ||
+ | * $M_{11}$ est la probabilité de voir un ' | ||
+ | * $M_{12}$ 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 $\mathcal{L}_1$ et $\mathcal{L}_2$ 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 $\alpha$ est définie comme : | ||
+ | $$I(\alpha) = -\log_2(P(X = \alpha)) $$ | ||
+ | où $p_\alpha = P(X = \alpha)$ est la fréquence d’apparition de ce symbole dans la langue considérée. | ||
+ | |||
+ | L' | ||
+ | Si le symbole $\alpha$ est “rare” ($p_\alpha$ petit), l’information qu’il apporte est élevée. Si le symbole | ||
+ | |||
+ | ==== Entropie ==== | ||
+ | |||
+ | L’entropie d’une langue est définie comme l' | ||
+ | $$H(\mathcal{L}) = E_X(I(X)) = -E_X(\log_2(P(X)) $$ | ||
+ | i.e. | ||
+ | $$H(\mathcal{L}) = - \sum_{k \in \{1, | ||
+ | |||
+ | <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 $\mathcal{L}$ donné, est définie comme : | ||
+ | $$H(m) = E(I(m[t])) = -E(\log_2(p_\mathcal{L}(m[t])) $$ | ||
+ | i.e. | ||
+ | $$H(m) = - \frac{1}{T}\sum_t \log_2(p_\mathcal{L}(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 = \frac{1} {\sum_k \frac{1}{k}}$$ | ||
+ | $$p(\alpha_k) = \frac{C}{k}$$ | ||
+ | </ | ||
+ | |||
+ | ==== Divergence de Kullback-Leibler ==== | ||
+ | |||
+ | Pour comparer deux langues $\mathcal{L}_1 et \mathcal{L}_2$, | ||
+ | |||
+ | $$D(\mathcal{L}_1||\mathcal{L}_2) = \sum_{k \in \{1, | ||
+ | |||
+ | où $P_1$ désigne la distribution des symboles du langage $\mathcal{L}_1$ et $P_2$ la distribution des symboles du langage $\mathcal{L}_2$. | ||
+ | |||
+ | <note important> | ||
+ | * La divergence de K-L est positive. | ||
+ | * Elle vaut 0 si les deux distributions sont identiques. | ||
+ | </ | ||
+ | |||
+ | === Comparer 2 messages === | ||
+ | Soient $d_1$ et $d_2$ deux textes pour lesquels on a calculé les histogramme des fréquences empiriques: $f_1$ et $f_2$ . | ||
+ | |||
+ | La divergence empirique de Kullback Leibler est une mesure de dissimilarité (l' | ||
+ | $$D(d_1||d_2) = \sum_{\alpha \in d_1 \bigcap d_2} f_1(\alpha) \log_2 \left(\frac{f_1(\alpha)}{f_2(\alpha)}\right)$$ | ||
+ | |||
+ | === 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 $\mathcal{L}_1$, | ||
+ | $$D(f||p_1) < D(f||p_2)$$ | ||
+ | soit | ||
+ | $$ \sum_{\alpha \in d} f(\alpha) \log_2 \left(\frac{f(\alpha)}{p_1(\alpha)}\right) < \sum_{\alpha \in d} f(\alpha) \log_2 \left(\frac{f(\alpha)}{p_2(\alpha)}\right)$$ | ||
+ | soit : | ||
+ | $$ \sum_{\alpha \in d} f(\alpha) \log_2 \left(\frac{p_1(\alpha)}{p_2(\alpha)}\right) > 0$$ | ||
+ | |||
+ | <note tip> | ||
+ | Soit $m$ un message de taille $T$. | ||
+ | Pour savoir si le message appartient au langage $\mathcal{L}_1$ ou au langage $\mathcal{L}_2$, | ||
+ | $$\text{Test} = \frac{1}{T}\sum_t \log_2(\frac{p_1(m[t]}{p_2(m[t])}) $$ | ||
+ | * Si Test > 0, il est plus probable que $m$ obéisse au langage $\mathcal{L}_1$ | ||
+ | * Si Test < 0, il est plus probable que $m$ obéisse au langage $\mathcal{L}_2$ | ||
+ | </ | ||
+ | On peut ainsi produire un classifieur basé sur les modèles probabilistes $p_1$ et $p_2$. | ||
+ | |||
+ | Utilisation : | ||
+ | * Deviner la langue d'un document | ||
+ | * Distinguer les messages frauduleux des messages courants | ||
+ | * etc. | ||
+ | |||