करेक्टर के आधार पर रिकर्सिव स्प्लिटिंग
कई डेवलपर्स किसी तय कैरेक्टर-लिस्ट के आधार पर डॉक्यूमेंट्स को बाँटने के लिए एक recursive character splitter का उपयोग करते हैं. डिफ़ॉल्ट रूप से ये कैरेक्टर पैराग्राफ, newline, स्पेस, और खाली स्ट्रिंग होते हैं: ["\n\n", "\n", " ", ""].
असल में, स्प्लिटर पहले पैराग्राफ के आधार पर स्प्लिट करने की कोशिश करता है, फिर जाँचता है कि chunk_size और chunk_overlap के मान पूरे हो रहे हैं या नहीं. अगर नहीं, तो वह वाक्य, फिर शब्द, और अंत में एक-एक कैरेक्टर के आधार पर स्प्लिट करता है.
अकसर, आपको अलग-अलग chunk_size और chunk_overlap मानों के साथ प्रयोग करना पड़ेगा ताकि आपके डॉक्यूमेंट्स के लिए सबसे उपयुक्त संयोजन मिल सके.
यह अभ्यास पाठ्यक्रम का हिस्सा है
LangChain के साथ LLM एप्लिकेशन विकसित करना
अभ्यास निर्देश
langchain_text_splittersसेRecursiveCharacterTextSplitterक्लास इम्पोर्ट करें.separators=["\n", " ", ""],chunk_size=24, औरchunk_overlap=10के साथ एकRecursiveCharacterTextSplitterइंस्टेंस बनाएँ..split_text()मेथड का उपयोग करकेquoteको स्प्लिट करें और चंक्स तथा उनके lengths प्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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])