डॉक्यूमेंट्स को रिकर्सिव तरीके से बाँटना
एक ही कैरेक्टर पर स्प्लिट करना आसान और अनुमानित होता है, लेकिन यह अक्सर कम-उपयुक्त चंक्स देता है। इस अभ्यास में, आप रिकर्सिव कैरेक्टर स्प्लिटिंग लागू करेंगे ताकि पहले वाले अभ्यास में लोड किए गए Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks पेपर को बाँटा जा सके.
ध्यान रखें कि रिकर्सिव कैरेक्टर स्प्लिटिंग कैरेक्टर्स की एक सूची पर इटरेट करती है, और बारी-बारी से हर कैरेक्टर पर स्प्लिट करके देखती है कि क्या chunk_size सीमा से छोटे चंक्स बनाए जा सकते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
LangChain के साथ Retrieval Augmented Generation (RAG)
अभ्यास निर्देश
- LangChain का एक रिकर्सिव कैरेक्टर टेक्स्ट स्प्लिटर परिभाषित करें, जो कैरेक्टर लिस्ट
['\n', '.', ' ', '']पर क्रमशः रिकर्सिव तरीके से स्प्लिट करे,chunk_size75औरchunk_overlap10हो. - परिभाषित
text_splitterऔर उपयुक्त मेथड का उपयोग करकेdocumentको स्प्लिट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
loader = PyPDFLoader("rag_paper.pdf")
document = loader.load()
# Define a text splitter that splits recursively through the character list
text_splitter = ____(
____,
chunk_size=75,
chunk_overlap=10
)
# Split the document using text_splitter
chunks = text_splitter.____
print(chunks)
print([len(chunk.page_content) for chunk in chunks])