tc_info:2020_cm_textes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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] edaucetc_info:2020_cm_textes [2023/11/30 10:21] (Version actuelle) edauce
Ligne 686: Ligne 686:
 {{:tc_info:corr:alignement_glouton.png?600|}} {{:tc_info:corr:alignement_glouton.png?600|}}
  
-===== 5. Modèles génératifs =====+==== 5. Modèles génératifs ====
  
 Soit un document $d$ : Soit un document $d$ :
Ligne 696: Ligne 696:
  
 {{:restricted:text_mining.png|}} {{:restricted:text_mining.png|}}
- 
-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:
 </note> </note>
  
-==== 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'alphabet. On note $P(X=\alpha)$ la fréquence d'apparition de ce symbole //dans le langage $\mathcal{L}$ considéré//, soit~: +Soit $\alpha \in A$ un symbole de l'alphabet. On note $P(X=\alpha)$ la fréquence d'apparition de ce symbole //dans le langage $\mathcal{L}$ considéré//.
-$$P(X=\alpha) = \frac{|\omega \in \Omega : X=\alpha|}{|\Omega|}$$ +
-où $\Omega$ représente l'ensemble des productions de caractères.+
  
 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:d[i] = \alpha\}|}{|d|} $$ 
-</note> 
-où |d| est le nombre de caractères dans le document. 
- 
-<note tip> 
-**Fréquence des lettres en français** 
-{{http://www.nymphomath.ch/crypto/stat/batonsfr.gif?nolink&300}} 
-</note> 
- 
-  * Voir aussi : {{https://fr.wikipedia.org/wiki/Analyse_fr%C3%A9quentielle|Analyse Fréquentielle sur Wikipedia}} 
- 
-=== 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,...,\alpha_k,...\alpha_K\}$. 
- 
-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. 
  
 <note> <note>
Ligne 763: Ligne 732:
   * etc.   * etc.
 </note> </note>
-avec bien sûr : +
-$$\sum_{k\in\{1,...,K\}} p_\mathcal{L}(k) = 1$$+
  
 === Probabilité jointe === === Probabilité jointe ===
Ligne 772: Ligne 740:
 Soient $\alpha$ et $\beta$ deux symboles de l'alphabet.  Soient $\alpha$ et $\beta$ deux symboles de l'alphabet. 
  
-La probabilité jointe est définie comme : +<note>
-$$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. +
- +
-<note tip> +
-{{public:algo-txt:proba_jointe.png?300|}} +
-</note> +
- +
-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~: +
-<note important> +
-$$f_d(\alpha, \beta) = \frac{|\{i:d[i] = \alpha,d[i+1] = \beta\}|}{|d|-1}$$ +
-</note>+
   * Les séquences de deux caractères sont classiquement appelées des //bigrammes//   * Les séquences de deux caractères sont classiquement appelées des //bigrammes//
   * On définit de même les //trigrammes// comme les séquences de trois caractères   * On définit de même les //trigrammes// comme les séquences de trois caractères
   * etc.   * etc.
- +</note>
- +
-=== 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,\alpha_j)$. 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)$.
Ligne 820: Ligne 772:
  voir {{http://www.nymphomath.ch/crypto/stat/francais.html|comptage des bigrammes en français}}  voir {{http://www.nymphomath.ch/crypto/stat/francais.html|comptage des bigrammes en français}}
 </note> </note>
- 
-=== Corpus de documents === 
-Soit $B$ un corpus de documents, constitué de $n$ documents.  
-<note> 
-La fréquence empirique du symbole $\alpha$ dans le corpus $B$  
-est donnée par~: 
-$$f_B(\alpha) = \frac{|\{(i,j):d_i \in B,d_i[j] = \alpha\}|}{|B|} $$ 
-où |B| est le nombre total de caractères dans le corpus. 
- 
-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} $$ 
- 
-</note> 
- 
- 
- 
-=== 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:
 </note> </note>
  
-qui se calcule empiriquement comme : 
  
-$$f_d(\beta|\alpha) = \frac{|\{i:d[i] = \alpha,d[i+1] = \beta\}|}{|\{j:d[j] = \alpha\}|}$$ 
- 
-<note> 
-  * La probabilité $P(.|\alpha_i)$ se représente sous forme vectorielle~: $$\boldsymbol{\mu}_i = (P(\alpha_1|\alpha_i), P(\alpha_2|\alpha_i), ...) $$ où $\alpha_1$ est le premier caractère de l'alphabet, $\alpha_2$ le deuxième etc, avec $$\sum_j \boldsymbol{\mu}_{ij} = 1$$ 
- 
-  * L'ensemble des probabilités conditionnelles $P(.|.)$ peut se représenter sous une forme matricielle~: 
-$$ 
-\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} 
-$$  
- 
-</note> 
- 
-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 : Soit en français :
Ligne 911: Ligne 815:
  </note>  </note>
  
 +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 ("Lorem Ipsum") : {{https://www.lipsum.com/}}
 +  * 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'éphémère ébloui par ses couleurs du haut qu'avec effroi dans sa beauté où je puis, sans remord un fleuve invisible d'un rayon frais n'éclaira vos banquiers un parfait d'une girouette ou décor suborneur ce temps! n'est plus ma carcasse superbe pyrrhus auprès d'un ange enivré du souvenir pour moi même dans le tortu, il fée, dévotes et mange retrouve jamais enfanté au poète– cependant de minéraux charmants, horreur, plus t'enfourcher! folle, si bien loin des laves les amants nous lançant son sein palpitant les blessés ou sirène qu'importé le coin du vin des jongleurs sacrés au loin de ton bétail, embusqué, et ton juge que ce globe entier dans les temps et d'un mouvement qui m'accable sur moi hurlait longue misère toi sans pitié de pleurs aboutit dans l'or et ne vibre que le soleil d'un chemin bourbeux croyant par votre corps brûlé par mille labyrinthes c'est un etre maudit soit actif ou de l'antre taciturne je le regard m'a déjà flaire peut être n'importe où les vrais rois pour le frais n'éclaira vos riches cités dans son coeur racorni, //
 +</note>
 +
 +=== 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'idée est :
 +    * 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'analyse des sentiments, 
 +  - la recherche d'information, etc
 +</note>
 +
 +**Word2Vec** est un algorithme d'apprentissage de représentations de mots (embeddings) développé par Tomas Mikolov et son équipe chez Google en 2013. 
 +
 +  * L'idée fondamentale est que les mots ayant des contextes similaires ont tendance à avoir des significations similaires. 
 +  * Word2Vec utilise des modèles de **prédictions** pour apprendre des représentations vectorielles en analysant les contextes d'occurrence des mots dans un corpus de texte.
 +
 +Il existe deux architectures principales de Word2Vec : Skip-Gram et CBOW 
 +
 +=== 1. Skip-Gram ===
 +Dans l'approche Skip-Gram, le modèle tente de prédire les mots environnants (contexte) à partir d'un mot donné (mot central). Le processus d'apprentissage consiste à maximiser la probabilité d'observer les contextes donnés un mot central :
 +
 +\[ \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'approche CBOW, le modèle tente de prédire le mot central à partir des mots contextuels (contexte). Le processus d'apprentissage consiste à maximiser la probabilité d'observer le mot central étant donnés les contextes:
 +
 +\[ \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'apprentissage dans Word2Vec implique la création d'une matrice de co-occurrence, où chaque entrée représente la fréquence ou la probabilité d'occurrence conjointe de deux mots. À partir de cette matrice, le modèle ajuste les vecteurs de mots de manière itérative pour maximiser la probabilité d'observation du contexte étant donné le mot central.
 +
 +Une fois l'apprentissage terminé, les vecteurs de mots obtenus (les embeddings) capturent les relations sémantiques entre les mots dans l'espace vectoriel. Des mots similaires seront représentés par des vecteurs similaires, ce qui permet d'effectuer des opérations algébriques intéressantes telles que \( \text{"roi"} - \text{"homme"} + \text{"femme"} \approx \text{"reine"} \).
 +
 +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'apprentissage automatique.
  
  • tc_info/2020_cm_textes.1701297638.txt.gz
  • Dernière modification : 2023/11/29 23:40
  • de edauce