Dividir recursivamente por caractere
Muitos desenvolvedores estão usando um divisor recursivo de caracteres para dividir documentos com base em uma lista específica de caracteres. Esses caracteres são parágrafos, novas linhas, espaços e strings vazias, por padrão: ["\n\n", "\n", " ", ""]
.
Basicamente, o divisor tenta dividir por parágrafos, verifica se os valores de chunk_size
e chunk_overlap
estão certos e, se não estiverem, divide por frases, depois por palavras e, por fim, por caracteres individuais.
Muitas vezes, você vai precisar experimentar diferentes valores de chunk_size
e chunk_overlap
para encontrar os que funcionam melhor com seus documentos.
Este exercício faz parte do curso
Desenvolvimento de aplicativos de LLM com LangChain
Instruções do exercício
- Importe a classe certa do LangChain para dividir um documento de forma recursiva por caractere.
- Defina um divisor recursivo de caracteres para dividir nos caracteres
"\n"
," "
e""
(nessa ordem) com umchunk_size
de24
echunk_overlap
de10
. - Divida
quote
e imprima os trechos e os comprimentos dos trechos.
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])