CommencezCommencez gratuitement

Découpage récursif par caractère

Beaucoup de développeurs utilisent un séparateur récursif par caractères pour découper des documents selon une liste précise de caractères. Par défaut, il s'agit des paragraphes, des retours à la ligne, des espaces et de la chaîne vide : ["\n\n", "\n", " ", ""].

Concrètement, le séparateur essaie d'abord de découper par paragraphes, vérifie si les valeurs de chunk_size et chunk_overlap sont respectées et, sinon, découpe par phrases, puis par mots, puis par caractères individuels.

Il faut souvent expérimenter différentes valeurs de chunk_size et de chunk_overlap pour trouver celles qui conviennent à vos documents.

Cette activité fait partie du cours

Développer des applications LLM avec LangChain

Voir le cours

Instructions de l’exercice

  • Importez la classe RecursiveCharacterTextSplitter depuis langchain_text_splitters.
  • Créez une instance de RecursiveCharacterTextSplitter avec separators=["\n", " ", ""], chunk_size=24 et chunk_overlap=10.
  • Utilisez la méthode .split_text() pour découper quote, puis affichez les segments et la longueur de chaque segment.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Import the recursive character splitter
from langchain_text_splitters import ____

quote = 'Words are flowing out like endless rain into a paper cup,\nthey slither while they pass,\nthey slip away across the universe.'
chunk_size = 24
chunk_overlap = 10

# Create an instance of the splitter class
splitter = RecursiveCharacterTextSplitter(
    separators=____,
    chunk_size=____,
    chunk_overlap=____)

# Split the document and print the chunks
docs = splitter.____(quote)
print(docs)
print([len(doc) for doc in docs])
Modifier et exécuter le code