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
Instructions de l’exercice
- Importez la classe
RecursiveCharacterTextSplitterdepuislangchain_text_splitters. - Créez une instance de
RecursiveCharacterTextSplitteravecseparators=["\n", " ", ""],chunk_size=24etchunk_overlap=10. - Utilisez la méthode
.split_text()pour découperquote, 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])