Împărțirea recursivă după caractere
Mulți dezvoltatori folosesc un splitter recursiv după caractere pentru a împărți documentele pe baza unei liste specifice de caractere. Implicit, acestea sunt paragrafele, liniile noi, spațiile și șirurile goale: ["\n\n", "\n", " ", ""].
Practic, splitter-ul încearcă mai întâi să împartă textul după paragrafe, verifică dacă valorile chunk_size și chunk_overlap sunt respectate și, dacă nu, trece la împărțirea după propoziții, apoi după cuvinte și, în final, după caractere individuale.
De cele mai multe ori, va trebui să experimentezi cu diferite valori pentru chunk_size și chunk_overlap pentru a le găsi pe cele care funcționează cel mai bine pentru documentele tale.
Acest exercițiu face parte din cursul
Developing LLM Applications with LangChain
Instrucțiuni pentru exercițiu
- Importă clasa
RecursiveCharacterTextSplitterdinlangchain_text_splitters. - Creează o instanță
RecursiveCharacterTextSplittercuseparators=["\n", " ", ""],chunk_size=24șichunk_overlap=10. - Folosește metoda
.split_text()pentru a împărțiquote, apoi afișează fragmentele obținute și lungimile acestora.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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])