0Pricing
AI Agents · Leçon

Stratégies de découpage (fixe, par phrase, sémantique)

Comparez les compromis entre un découpage de taille fixe, tenant compte des phrases, et sémantique pour améliorer la qualité de la recherche.

Stratégies de découpage (fixe, par phrase, sémantique) est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Pourquoi segmenter ?

Vous ne pouvez pas vectoriser un PDF de 200 pages entier en un seul vecteur : le vecteur serait trop abstrait pour correspondre à des requêtes précises. Vous segmentez le document en éléments plus petits (environ 200 à 800 jetons chacun), vous vectorisez chaque segment, puis vous effectuez la recherche au niveau des segments.

Segmentation de taille fixe

L'approche la plus simple : segmentez tous les N caractères ou jetons :

def fixed_chunks(text, chunk_size=1000, overlap=200):
    chunks = []
    i = 0
    while i < len(text):
        chunks.append(text[i:i + chunk_size])
        i += chunk_size - overlap
    return chunks

sample_text = "A" * 2500
chunks = fixed_chunks(sample_text, chunk_size=1000, overlap=200)
print(f"Split {len(sample_text)} characters into {len(chunks)} chunks")
for i, c in enumerate(chunks):
    print(f"Chunk {i+1}: {len(c)} chars")

Pourquoi chevaucher les segments ?

Le chevauchement (généralement de 10 à 20 % de la taille du segment) garantit qu'une phrase qui franchit une limite apparaît intacte dans au moins un segment. Sans lui, un fait important réparti entre plusieurs segments risque de ne pas être trouvé.

Segmentation basée sur les phrases

Segmentez aux limites des phrases : ne coupez jamais une phrase en son milieu :

import re

def sentence_chunks(text, max_chars=1000):
    sentences = re.split(r'(?<=[.!?])\s+', text)
    chunks = []
    current = ''
    for s in sentences:
        if len(current) + len(s) > max_chars and current:
            chunks.append(current.strip())
            current = s
        else:
            current += ' ' + s
    if current:
        chunks.append(current.strip())
    return chunks

sample_text = "This is sentence one. This is sentence two! Is this sentence three? Yes it is."
chunks = sentence_chunks(sample_text, max_chars=40)
for i, c in enumerate(chunks):
    print(f"Chunk {i+1}: {c!r}")

Segmentation récursive (LangChain)

Le RecursiveCharacterTextSplitter de LangChain essaie d'abord de segmenter aux limites des paragraphes, puis aux limites des phrases et enfin aux limites des mots, en préservant autant que possible la structure.

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,
    chunk_overlap=100,
    separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_text(document)

Segmentation sémantique

Segmentez lorsque le sujet change. Les implémentations vectorisent chaque phrase et segmentent lorsque les représentations vectorielles de phrases consécutives sont très éloignées.

Le calcul est plus lent, mais produit des segments cohérents sur le plan thématique.

Segmentation adaptée au Markdown

Pour les documents Markdown, segmentez aux limites des titres afin de conserver les sections ensemble. Chaque segment hérite de ses titres parents comme contexte.

Segmentation adaptée au code

Pour le code source, segmentez selon les limites des fonctions et des classes, et non selon le nombre de caractères. Des outils comme tree-sitter permettent une segmentation fondée sur l'AST.

Choisir la taille des segments

Compromis :

  • Petits segments (environ 200 jetons) — correspondances précises, davantage de segments à gérer
  • Grands segments (environ 1 000 jetons) — davantage de contexte par correspondance, mais moins de précision

Valeur par défaut : 500 à 800 jetons avec un chevauchement de 10 à 20 %.

Conservation des métadonnées

Associez des métadonnées à chaque segment :

  • URL source / chemin du fichier
  • Numéro de page
  • Titre du document
  • Section / titre
  • Horodatages de création / de mise à jour

Ces informations sont utiles pour le filtrage, les références et le reclassement.

Segments contextuels

Technique récente : faites précéder chaque segment d'un contexte d'une ligne généré par un LLM (par ex. « Ce segment provient du rapport financier du deuxième trimestre 2024 de l'entreprise et traite du chiffre d'affaires. »). Cela améliore la recherche de 30 à 50 %.

Segments parents-enfants

Indexez de petits segments pour obtenir des correspondances précises, mais récupérez leur paragraphe parent LARGER pour disposer de davantage de contexte :

  1. Vectorisez des segments au niveau des phrases
  2. En cas de correspondance, renvoyez le segment parent de 800 jetons

Pourquoi chevaucher les segments ?

Pourquoi les segments se chevauchent-ils généralement de 10 à 20 % ?

Récapitulatif

Commencez par une segmentation récursive par caractères, avec environ 800 jetons et un chevauchement de 10 %. Ajoutez une prise en compte sémantique ou structurelle à mesure que vos besoins évoluent.

Questions Fréquemment Posées

La leçon « Stratégies de découpage (fixe, par phrase, sémantique) » est-elle gratuite ?

Oui — le texte complet de « Stratégies de découpage (fixe, par phrase, sémantique) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Stratégies de découpage (fixe, par phrase, sémantique) » ?

Comparez les compromis entre un découpage de taille fixe, tenant compte des phrases, et sémantique pour améliorer la qualité de la recherche. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Stratégies de découpage (fixe, par phrase, sémantique) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Ce que RAG permet de résoudre (date de connaissance, hallucinations)
  2. Stratégies de découpage (fixe, par phrase, sémantique)
  3. Indexer un ensemble de documents
  4. Construire un RAG naïf avec FAISS ou Chroma
← Retour à AI Agents