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/30 00:02] – [5. Modèles génératifs] edaucetc_info:2020_cm_textes [2025/04/23 10:59] (Version actuelle) edauce
Ligne 41: Ligne 41:
 <code java> <code java>
   char x;   char x;
-  x = 'a';+  x = 'x';
 </code>   </code>  
   * ''x'' une variable de type caractère   * ''x'' une variable de type caractère
-  * ''a'' la valeur numérique (encodé):+  * '''x''' la valeur numérique (encodée):
  
   *   *
Ligne 54: Ligne 54:
     * Codage latin-1 (caractères latins étendus)     * Codage latin-1 (caractères latins étendus)
     * etc...     * etc...
 +
 +<note> ** La table ASCII **
 +{{ :tc_info:capture_d_ecran_du_2025-04-23_10-37-41.png |}}
 +</note>
  
  
Ligne 67: Ligne 71:
   *   *
     * affiche la valeur ''47'' (le code ASCII du caractère '''/'''     * affiche la valeur ''47'' (le code ASCII du caractère '''/'''
-  * La norme UTF-8 encode les caractères sur un nombre d'octets variant entre 1 et 4. Il permet ainsi de coder un nombre de caractères considérablement plus élevé. 
-    * Exemple : le smiley '''😃''' appartient à la norme utf-8. Pour obtenir la valeur entière correspondante : 
-<code java> 
-String s = "😃"; 
-int code = s.codePointAt(0); 
-System.out.println(code); 
-</code> 
-  * On peut inversement afficher le caractère à partir de son code entier : 
-<code java> 
-int code1 = 233; 
-int code2 = 119070; 
- 
-char char1 = (char) code1; 
-String char2 = new String(Character.toChars(code2)); 
- 
-System.out.println(char1); 
-System.out.println(char2); 
-</code> 
 </note> </note>
 +
 +voir aussi : {{https://koor.fr/Java/Tutorial/java_type_character.wp}}
  
 === 1.3 Codage des mots et du texte === === 1.3 Codage des mots et du texte ===
Ligne 111: Ligne 99:
  
 Le programme affiche les caractère 1 par 1, c’est une "chaîne" de plusieurs caractères individuels. Le programme affiche les caractère 1 par 1, c’est une "chaîne" de plusieurs caractères individuels.
 +
 +<note important> 
 +  * La norme UTF-8 encode les caractères sur un nombre d'octets variant entre 1 et 4. Il permet ainsi de coder un nombre de caractères considérablement plus élevé.
 +    * Exemple : le smiley '''😃''' appartient à la norme utf-8. Pour obtenir la valeur entière correspondante :
 +<code java>
 +String s = "😃";
 +int code = s.codePointAt(0);
 +System.out.println(code);
 +</code>
 +  * On peut inversement afficher le caractère à partir de son code entier :
 +<code java>
 +int code1 = 233;
 +int code2 = 119070;
 +
 +char char1 = (char) code1;
 +String char2 = new String(Character.toChars(code2));
 +
 +System.out.println(char1);
 +System.out.println(char2);
 +</code>
 +</note>
  
 **Donnée texte** **Donnée texte**
Ligne 116: Ligne 125:
 Un texte, au même titre qu'un mot, est une chaîne de caractères (dont la longueur est définie par la longueur de  Un texte, au même titre qu'un mot, est une chaîne de caractères (dont la longueur est définie par la longueur de 
 la séquence de caractères qui définissent le texte, ponctuations, espaces et caractères de retour à la ligne compris). la séquence de caractères qui définissent le texte, ponctuations, espaces et caractères de retour à la ligne compris).
-<note tip> ** Les caractères séparateurs **+
  
 Par définition les caractères séparateurs définissent la taille des espaces entre les mots, ainsi que les passages à la ligne lors de l'affichage du texte.  Par définition les caractères séparateurs définissent la taille des espaces entre les mots, ainsi que les passages à la ligne lors de l'affichage du texte. 
-  * ''""''  : caractère nul  + 
-  * ''" "'' : un espace simple +<note tip> ** Les caractères séparateurs ** 
-  * ''"\t"'' : tabulation +  * <code java>'' </code>  : caractère nul  
-  * ''"\n"'' : passage à la ligne ("retour chariot"+  * <code java>' ' </code> : un espace simple 
-  * ''"\b"'' : retour arrière ("//backspace//")+  * <code java>'\t' </code> : tabulation 
 +  * <code java>'\n' </code> : passage à la ligne ("retour chariot"
 +  * <code java>'\b' </code> : retour arrière ("//backspace//")
   * etc.   * etc.
 </note> </note>
Ligne 134: Ligne 145:
   * ainsi, dans le système décimal, la position du chiffre dans le nombre définit à quelle puissance de 10 il appartient (unité, dizaines, centaines, etc...) Le chiffre le plus à gauche a la puissance la plus élevée et celui le plus à droite la puissance la plus faible.     * ainsi, dans le système décimal, la position du chiffre dans le nombre définit à quelle puissance de 10 il appartient (unité, dizaines, centaines, etc...) Le chiffre le plus à gauche a la puissance la plus élevée et celui le plus à droite la puissance la plus faible.  
   * Si on suppose, pour simplifier, que chaque caractère est codé par un entier entre 0 et 255 (soit le code ASCII "étendu"), alors toute séquence de caractères (de claviers européens) exprime un nombre en base 256.    * Si on suppose, pour simplifier, que chaque caractère est codé par un entier entre 0 et 255 (soit le code ASCII "étendu"), alors toute séquence de caractères (de claviers européens) exprime un nombre en base 256. 
-    * Un tel nombre s'appelle un "bytestring" en python.  +    * Un tel nombre s'appelle un "bytestring" ("chaine d'octets").  
     * Il existe une fonction ''encode'' qui effectue une telle traduction     * Il existe une fonction ''encode'' qui effectue une telle traduction
       * Exemple :       * Exemple :
Ligne 686: Ligne 697:
 {{: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 (Hors programme) ====
  
 Soit un document d : Soit un document d :
Ligne 820: Ligne 831:
   * Exemple de pseudo-français (Utilisant une trace (mémoire) de 1 mot):   * Exemple de pseudo-français (Utilisant une trace (mémoire) de 1 mot):
 <note tip> <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, +//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> </note>
  
Ligne 839: Ligne 850:
 </note> </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 :
 +
 +maxTt=1cjc,j0logP(wt+jwt)
 +
 +T est la taille du corpus, wt est le mot central, wt+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:
 +
 +maxTt=1logP(wtwtc,,wt1,wt+1,,wt+c)
 +
 +T est la taille du corpus, wt est le mot central, et wti 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 "roi""homme"+"femme""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.1701298957.txt.gz
  • Dernière modification : 2023/11/30 00:02
  • de edauce