Divisão recursiva por caractere
Muitos desenvolvedores estão usando um divisor de caracteres recursivo para dividir documentos com base em uma lista específica de caracteres. Esses caracteres são parágrafos, novas linhas, espaços e cadeias de caracteres vazias, por padrão: ["\n\n", "\n", " ", ""]
.
Na verdade, o divisor tenta dividir por parágrafos, verifica se os valores chunk_size
e chunk_overlap
são atendidos e, caso contrário, divide por frases, depois por palavras e caracteres individuais.
Muitas vezes, você precisará experimentar diferentes valores de chunk_size
e chunk_overlap
para encontrar os que funcionam melhor para seus documentos.
Este exercício faz parte do curso
Desenvolvimento de aplicativos LLM com LangChain
Instruções do exercício
- Importe a classe LangChain apropriada para dividir um documento recursivamente por caractere.
- Defina um divisor de caracteres recursivo para dividir os caracteres
"\n"
," "
e""
(nessa ordem) com umchunk_size
de24
e umchunk_overlap
de10
. - Divida
quote
e imprima os pedaços e os comprimentos dos pedaços.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 = ____
# Split the document and print the chunks
docs = ____
print(docs)
print([len(doc) for doc in docs])