AI EducademyAIEducademy
🌳

Fondations IA

🌱
AI Seeds

Partez de zéro

🌿
AI Sprouts

Construisez les fondations

🌳
AI Branches

Mettez en pratique

🏕️
AI Canopy

Approfondissez

🌲
AI Forest

Maîtrisez l'IA

🔨

Maîtrise IA

✏️
AI Sketch

Partez de zéro

🪨
AI Chisel

Construisez les fondations

⚒️
AI Craft

Mettez en pratique

💎
AI Polish

Approfondissez

🏆
AI Masterpiece

Maîtrisez l'IA

🚀

Prêt pour la Carrière

🚀
Rampe de lancement entretien

Commencez votre parcours

🌟
Maîtrise comportementale

Maîtrisez les compétences relationnelles

💻
Entretiens techniques

Réussissez l'épreuve de code

🤖
Entretiens IA et ML

Maîtrisez l'entretien ML

🏆
Offre et au-delà

Décrochez la meilleure offre

Voir tous les programmes→

Labo

7 expériences chargées
🧠Terrain de jeu neuronal🤖IA ou humain ?💬Labo de prompts🎨Generateur d'images😊Analyseur de sentiment💡Constructeur de chatbot⚖️Simulateur d'ethique
🎯Entretien simuléEntrer dans le labo→
ParcoursBlog
🎯
À propos

Rendre l'éducation en IA accessible à tous, partout

❓
FAQ

Common questions answered

✉️
Contact

Get in touch with us

⭐
Open Source

Construit publiquement sur GitHub

Commencer gratuitement
AI EducademyAIEducademy

Licence MIT. Open Source

Apprendre

  • Programmes
  • Leçons
  • Labo

Communauté

  • GitHub
  • Contribuer
  • Code de conduite
  • À propos
  • FAQ

Soutien

  • Offrez-moi un café ☕
  • Conditions d'utilisation
  • Politique de confidentialité
  • Contact
Programmes d'IA et d'ingénierie›✏️ AI Sketch›Leçons›Chaînes de caractères et traitement de texte
📝
AI Sketch • Intermédiaire⏱️ 15 min de lecture

Chaînes de caractères et traitement de texte

Le texte est omniprésent en IA

Avant qu'une IA puisse comprendre votre question, rédiger un essai ou traduire une phrase, elle doit traiter du texte brut. Chaque chatbot, moteur de recherche et modèle de langage commence par des chaînes de caractères (strings) - des séquences de caractères représentant le langage humain.

Comprendre le fonctionnement des chaînes ouvre la porte au traitement du langage naturel (NLP), l'un des domaines les plus passionnants de l'intelligence artificielle.

Les bases des chaînes

Une chaîne est simplement une séquence de caractères - lettres, chiffres, espaces et symboles - stockés dans l'ordre.

message = "Hello, World!"

Chaque caractère a une position (index), exactement comme un tableau :

index:  0  1  2  3  4  5  6  7  8  9  10  11  12
char:   H  e  l  l  o  ,     W  o  r   l   d   !
Une chaîne décomposée en caractères individuels avec les positions d'index sous chacun
En coulisses, une chaîne est un tableau de caractères - chacun avec son propre index.

Sous-chaînes

Une sous-chaîne (substring) est un extrait d'une chaîne. De « Hello, World! » on peut extraire « World » (indices 7 à 11). Les systèmes d'IA extraient constamment des sous-chaînes - noms dans des phrases, hashtags dans des tweets, URLs dans des pages web.

Immutabilité

Dans la plupart des langages, les chaînes sont immuables - on ne peut pas modifier un caractère en place. On crée une nouvelle chaîne. Cela compte pour la performance : si votre pipeline IA modifie du texte des millions de fois, créer une nouvelle chaîne à chaque fois peut ralentir les choses.

🤯

L'œuvre complète de Shakespeare contient environ 900 000 mots. GPT-4 a été entraîné sur des jeux de données des milliers de fois plus grands - des centaines de milliards de mots, tous traités comme des chaînes avant d'être convertis en nombres.

Comment ChatGPT lit le texte : la tokenisation

Les modèles d'IA ne lisent pas les mots comme les humains. Ils utilisent la tokenisation - découper le texte en morceaux plus petits appelés tokens.

Input:  "unhappiness"
Tokens: ["un", "happiness"]

Input:  "ChatGPT is brilliant"
Tokens: ["Chat", "G", "PT", " is", " brilliant"]

La tokenisation se situe entre le traitement caractère par caractère et le traitement mot par mot. Elle gère les mots rares en les décomposant en sous-parties connues, gardant le vocabulaire gérable.

Leçon 2 sur 100% terminé
←Tableaux et tables de hachage

Discussion

Sign in to join the discussion

Suggérer une modification de cette leçon
🤔
Think about it:

Quand vous tapez un mot long et inhabituel comme « antidisestablishmentarianism » dans ChatGPT, le modèle le découpe en tokens de sous-mots familiers. Pourquoi est-ce mieux que de stocker chaque mot anglais possible comme un token séparé ?

Pourquoi la tokenisation compte

  • Un modèle de langage typique a un vocabulaire de 50 000 à 100 000 tokens.
  • Chaque token correspond à un nombre (son ID) que le modèle traite réellement.
  • La manière dont le texte est tokenisé affecte le coût - plus de tokens signifie plus de calcul et des frais d'API plus élevés.

Pattern matching - Trouver l'aiguille dans la botte de foin

Une opération fondamentale sur les chaînes : chercher un motif dans un texte plus grand. Cet email contient-il le mot « urgent » ? Ce code contient-il une faille de sécurité ?

L'approche simple

Faire glisser le motif le long du texte, en vérifiant caractère par caractère :

text:    "the cat sat on the mat"
pattern: "cat"

Position 0: "the" → no match
Position 1: "he " → no match
Position 4: "cat" → match found at index 4!

C'est du O(n × m) dans le pire cas, avec n la longueur du texte et m celle du motif. Pour de courts motifs, ça va. Pour scanner des millions de documents, il faut des approches plus malignes.

🧠Vérification rapide

Pourquoi le pattern matching naïf est-il lent pour de très grands textes ?

Défis classiques sur les chaînes

Inversion de chaîne

reverse("hello") → "olleh"

L'IA utilise l'inversion dans les modèles séquence-à-séquence - certains modèles de traduction inversaient la phrase d'entrée pour améliorer la précision.

Détection de palindromes

Un palindrome se lit de la même façon dans les deux sens : « racecar », « madam », « level ».

is_palindrome(text):
    return text == reverse(text)

Détection d'anagrammes

Deux mots sont des anagrammes s'ils contiennent les mêmes caractères dans un ordre différent : « listen » et « silent ».

La solution élégante ? Compter les fréquences de caractères avec une hash map :

are_anagrams(word1, word2):
    return character_counts(word1) == character_counts(word2)

C'est directement lié au patron de comptage de fréquences de la leçon précédente - les hash maps rendent cela O(n).

🧠Vérification rapide

Quelle approche vérifie le plus efficacement si deux mots sont des anagrammes ?

Expressions régulières - Le pattern matching surpuissant

Les expressions régulières (regex) permettent de décrire des motifs plutôt que du texte exact :

| Motif | Correspond à | Cas d'usage | |-------|-------------|-------------| | \d+ | Un ou plusieurs chiffres | Extraire des nombres | | [A-Z][a-z]+ | Un mot capitalisé | Trouver des noms propres | | \b\w+@\w+\.\w+\b | Adresses email | Extraction de données | | (cat\|dog\|bird) | L'un des trois mots | Mots-clés de classification |

Les pipelines IA utilisent les regex massivement pour le nettoyage de données - supprimer les balises HTML, extraire des dates, standardiser des numéros de téléphone.

💡

Les expressions régulières sont puissantes mais piégeuses. Un regex mal écrit peut prendre un temps exponentiel sur certaines entrées - le fameux « catastrophic backtracking ». Testez toujours vos motifs sur des cas limites.

Pipeline réel de traitement de texte en IA

  1. Texte brut → "The café's Wi-Fi isn't working!!!"
  2. Mise en minuscules → "the café's wi-fi isn't working!!!"
  3. Suppression de la ponctuation → "the cafés wifi isnt working"
  4. Tokenisation → ["the", "café", "s", "wi", "fi", "isn", "t", "working"]
  5. IDs de tokens → [1, 8432, 82, 5901, 3344, 2817, 83, 1562]
  6. Vers le modèle → Des nombres que l'IA peut réellement traiter

Chaque étape implique des opérations sur les chaînes - découpe, recherche, remplacement et division.

🤔
Think about it:

Quand vous envoyez un message à un chatbot dans une langue qui n'utilise pas d'espaces entre les mots (comme le chinois ou le japonais), comment la tokenisation pourrait-elle fonctionner différemment ?

🤯

Le tokeniseur d'OpenAI découpe « tokenisation » en ["token", "isation"] - deux tokens. Mais l'orthographe américaine « tokenization » donne ["token", "ization"]. Le même concept coûte différemment selon l'orthographe !

🧠Vérification rapide

Dans un pipeline de traitement de texte, pourquoi effectue-t-on la tokenisation avant d'alimenter un modèle d'IA ?

Points clés à retenir

  • Les chaînes sont des séquences de caractères - la matière première de toute IA textuelle.
  • La tokenisation fait le pont entre le langage humain et l'apprentissage automatique.
  • Le pattern matching et les regex sont essentiels pour nettoyer et extraire les données.
  • Les problèmes classiques (inversion, palindromes, anagrammes) construisent les compétences nécessaires au traitement IA.
  • Chaque message envoyé à ChatGPT passe par un pipeline d'opérations sur les chaînes avant que le modèle ne le voie.