เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแบ่งเอกสารแบบ Recursive

การแบ่งข้อความด้วยอักขระเดียวนั้นทำได้ง่ายและคาดเดาผลได้ แต่มักให้ชิ้นส่วนที่ไม่เหมาะสมนัก ในแบบฝึกหัดนี้ จะได้ลองใช้การแบ่งแบบ recursive character splitting กับเอกสารงานวิจัย Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ที่โหลดมาในแบบฝึกหัดก่อนหน้า

ขอให้นึกถึงหลักการของ recursive character splitting ซึ่งจะวนผ่านรายการอักขระทีละตัว โดยลองแบ่งข้อความด้วยอักขระแต่ละตัวเพื่อดูว่าสามารถสร้างชิ้นส่วนที่มีขนาดไม่เกิน chunk_size ได้หรือไม่

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Retrieval Augmented Generation (RAG) ด้วย LangChain

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนด recursive character text splitter ของ LangChain เพื่อแบ่งข้อความผ่านรายการอักขระ ['\n', '.', ' ', ''] โดยตั้ง chunk size เป็น 75 และ chunk overlap เป็น 10
  • แบ่ง document โดยใช้ text_splitter ที่กำหนดขึ้นพร้อมเมธอดที่เหมาะสม

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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])
แก้ไขและรันโค้ด