Memecah secara rekursif berdasarkan karakter
Banyak pengembang menggunakan pemisah karakter rekursif untuk membagi dokumen berdasarkan daftar karakter tertentu. Secara bawaan, karakter tersebut adalah paragraf, baris baru, spasi, dan string kosong: ["\n\n", "\n", " ", ""].
Secara efektif, pemisah akan mencoba membagi berdasarkan paragraf, memeriksa apakah nilai chunk_size dan chunk_overlap terpenuhi, dan jika tidak, membagi berdasarkan kalimat, lalu kata, hingga karakter per karakter.
Sering kali, Anda perlu bereksperimen dengan berbagai nilai chunk_size dan chunk_overlap untuk menemukan kombinasi yang paling sesuai untuk dokumen Anda.
Latihan ini adalah bagian dari kursus
Mengembangkan Aplikasi LLM dengan LangChain
Petunjuk latihan
- Impor kelas
RecursiveCharacterTextSplitterdarilangchain_text_splitters. - Buat instance
RecursiveCharacterTextSplitterdenganseparators=["\n", " ", ""],chunk_size=24, danchunk_overlap=10. - Gunakan metode
.split_text()untuk membagiquotedan cetak potongan serta panjang tiap potongan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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])