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 | ||
tc_info:2020_cm_textes [2023/11/29 23:40] – [5. Modèles génératifs] edauce | tc_info:2020_cm_textes [2023/11/30 10:21] (Version actuelle) – edauce | ||
---|---|---|---|
Ligne 686: | Ligne 686: | ||
{{: | {{: | ||
- | ===== 5. Modèles génératifs | + | ==== 5. Modèles génératifs ==== |
Soit un document $d$ : | Soit un document $d$ : | ||
Ligne 696: | Ligne 696: | ||
{{: | {{: | ||
- | |||
- | 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> | <note tip> | ||
Ligne 720: | Ligne 710: | ||
</ | </ | ||
- | ==== 3.1 Modèles probabilistes | + | === 5.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. | 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. | ||
Ligne 728: | Ligne 718: | ||
=== Fréquence d'un symbole === | === Fréquence d'un symbole === | ||
- | Soit $\alpha \in A$ un symbole de l' | + | 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~: | On a par définition~: | ||
$$\sum_{\alpha \in V} P(X=\alpha) = 1$$ | $$\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. | ||
< | < | ||
Ligne 763: | Ligne 732: | ||
* etc. | * etc. | ||
</ | </ | ||
- | avec bien sûr : | + | |
- | $$\sum_{k\in\{1, | + | |
=== Probabilité jointe === | === Probabilité jointe === | ||
Ligne 772: | Ligne 740: | ||
Soient $\alpha$ et $\beta$ deux symboles de l' | 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, | + | |
- | </note> | + | |
* Les séquences de deux caractères sont classiquement appelées des // | * Les séquences de deux caractères sont classiquement appelées des // | ||
* On définit de même les // | * On définit de même les // | ||
* etc. | * 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, | 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, | ||
Ligne 820: | Ligne 772: | ||
voir {{http:// | 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 : | La **probabilité conditionnelle** du caractère $\beta$ étant donné le caractère précédent $\alpha$ est définie comme : | ||
Ligne 848: | Ligne 783: | ||
</ | </ | ||
- | 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 : | Soit en français : | ||
Ligne 911: | Ligne 815: | ||
</ | </ | ||
+ | On peutétendre ce principe à la distribution des mots dans les textes, ce qui permet de produire des //modèles génératifs de langage//. | ||
+ | |||
+ | * Exemple : le pseudo latin (" | ||
+ | * Exemple de pseudo-français (Utilisant une trace (mémoire) de 1 mot): | ||
+ | <note tip> | ||
+ | //j'ai vu parfois des yeux, remonter vers toi bien fatiguée! n'est pas un appel de la terre– je hume à coups mutins les voiles la blafarde lumière puisée au delà les vieux flacon débouché rien ne puis la pourriture les forêts ou bien que vénus par des choses dans les forts des senteurs confondues de ma chère, prêtre orgueilleux danse amoureusement l' | ||
+ | </ | ||
+ | |||
+ | === 5.2 Espaces de plongement (Word embedding) === | ||
+ | Le plongement des mots (word embedding) | ||
+ | * est une technique en traitement automatique du langage naturel (TALN) | ||
+ | * qui consiste à représenter les mots **sous forme de vecteurs de nombres réels dans un espace vectoriel**. | ||
+ | * L' | ||
+ | * de projeter les mots dans cet espace vectoriel | ||
+ | * où la proximité spatiale entre les vecteurs reflète la sémantique des mots. | ||
+ | |||
+ | <note tip> | ||
+ | Largement utilisés dans diverses tâches de traitement du langage naturel: | ||
+ | - classification de texte, | ||
+ | - la traduction automatique, | ||
+ | - l' | ||
+ | - la recherche d' | ||
+ | </ | ||
+ | |||
+ | **Word2Vec** est un algorithme d' | ||
+ | |||
+ | * L' | ||
+ | * Word2Vec utilise des modèles de **prédictions** pour apprendre des représentations vectorielles en analysant les contextes d' | ||
+ | |||
+ | Il existe deux architectures principales de Word2Vec : Skip-Gram et CBOW | ||
+ | |||
+ | === 1. Skip-Gram === | ||
+ | Dans l' | ||
+ | |||
+ | \[ \max \sum_{t=1}^{T} \sum_{-c \leq j \leq c, j \neq 0} \log P(w_{t+j} \mid w_t) \] | ||
+ | |||
+ | où \(T\) est la taille du corpus, \(w_t\) est le mot central, \(w_{t+j}\) est le mot contexte, et \(c\) est la taille de la fenêtre contextuelle. | ||
+ | |||
+ | === 2. CBOW (Continuous Bag of Words) === | ||
+ | Dans l' | ||
+ | |||
+ | \[ \max \sum_{t=1}^{T} \log P(w_t \mid w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c}) \] | ||
+ | |||
+ | où \(T\) est la taille du corpus, \(w_t\) est le mot central, et \(w_{t-i}\) sont les mots contextuels dans la fenêtre de contexte. | ||
+ | |||
+ | === Fonctionnement Général === | ||
+ | Le processus d' | ||
+ | |||
+ | Une fois l' | ||
+ | |||
+ | Word2Vec a été révolutionnaire en raison de sa capacité à apprendre des représentations de mots utiles à partir de grands volumes de texte non annoté, et ses embeddings sont souvent utilisés comme points de départ pour de nombreuses tâches de traitement du langage naturel (NLP) et d' | ||