Soit un document d :
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
on utilise la théorie de l’information
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'intéresse pas au sens du message, on regarde seulement comment les symboles se répartissent dans les documents, leurs fréquences d'apparition, les régularités, …
Soit α∈A un symbole de l'alphabet. On note P(X=α) la fréquence d'apparition de ce symbole dans le langage L considéré, soit~: P(X=α)=|ω∈Ω:X=α||Ω| où Ω représente l'ensemble des productions de caractères.
On a par définition~: ∑α∈VP(X=α)=1
La fréquence empirique du symbole α dans le document d est donnée par~:
où |d| est le nombre de caractères dans le document.
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.
avec bien sûr : \sum_{k\in\{1,...,K\}} p_\mathcal{L}(k) = 1
On s'intéresse maintenant aux fréquence d'apparition de couples de lettre successives.
Soient \alpha et \beta deux symboles de l'alphabet.
La probabilité jointe est définie comme : P(X=\alpha, Y=\beta) = \frac{|\xi \in \Xi : (X,Y)=(\alpha,\beta)|}{|\Xi|} où \Xi est l'ensemble des productions de couples de caractères.
avec par définition: \sum_{(\alpha,\beta) \in A\times A} P(X=\alpha,Y=\beta) = 1
La probabilité jointe empirique est donnée par~:
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,\alpha_j).
où
avec bien sûr : \sum_{(i,j) \in \{1,...,K\}^2} P_{ij}=1
Soit B un corpus de documents, constitué de n documents.
La fréquence jointe du couple (\alpha,\beta) est donnée par f_B(\alpha,\beta) = \frac{|\{(i,j):d_i \in B,(d_i[j],d_i[j+1]) = (\alpha,\beta) \}|}{|B|-n}
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,Y)=(\alpha,\beta)|}{|\xi \in \Xi : X = \alpha|}
qui se calcule empiriquement comme :
f_d(\beta|\alpha) = \frac{|\{i:d[i] = \alpha,d[i+1] = \beta\}|}{|\{j:d[j] = \alpha\}|}
\begin{array}{cl} M &= \left( \begin{array}{c} \boldsymbol{\mu}_1\\ \boldsymbol{\mu}_2\\ ... \end{array} \right) \\ &=\left( \begin{array}{cccc} P(\alpha_1|\alpha_1)& P(\alpha_2|\alpha_1)& P(\alpha_3|\alpha_1)&...\\ P(\alpha_1|\alpha_2)& P(\alpha_2|\alpha_2)& P(\alpha_3|\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,:}} {p_i}
Soit en français :
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'information est une mesure de la "surprise" provoquée par l'apparition du symbole \alpha. Si le symbole \alpha est “rare” (p_\alpha petit), l’information qu’il apporte est élevée. Si le symbole est fréquent, l’information qu’il apporte est faible.
L’entropie d’une langue est définie comme l'espérance de l'information apportée par un caractère. H(\mathcal{L}) = E_X(I(X)) = -E_X(\log_2(P(X)) i.e. H(\mathcal{L}) = - \sum_{k \in \{1,...,K\}} P(X = \alpha_k) \log_2(P(X = \alpha_k))
C = \frac{1} {\sum_k \frac{1}{k}} p(\alpha_k) = \frac{C}{k}
Pour comparer deux langues \mathcal{L}_1 et \mathcal{L}_2, on peut utiliser la divergence de Kullback-Leibler définie comme l'espérance de la différence des informations apportées par un même symbole:
D(\mathcal{L}_1||\mathcal{L}_2) = \sum_{k \in \{1,...,K\}} P_1(X = \alpha_k) \log_2 \left(\frac{P_1(X = \alpha_k)}{P_2(X = \alpha_k)}\right)
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.
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'inverse d'une similarité) qui estime combien d_1 diffère de d_2 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)
Il arrive que l'on ne sache pas à l'avance si une suite de symboles m[1], ... m[T] est générée par le langage \mathcal{L}_1 (dont les symboles obéissent à la distribution p_1) ou le langage \mathcal{L}_2 (dont les symboles obéissent à la distribution p_2).
Soit f la fréquence empirique des symboles de m.
Si m est produit par \mathcal{L}_1, on devrait avoir : 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
On peut ainsi produire un classifieur basé sur les modèles probabilistes p_1 et p_2.
Utilisation :