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

การแบ่งข้อความแบบ Recursive ตามอักขระ

นักพัฒนาหลายคนนิยมใช้ recursive character splitter เพื่อแบ่งเอกสารตามรายการอักขระที่กำหนด โดยค่าเริ่มต้นจะใช้อักขระเหล่านี้: ["\n\n", "\n", " ", ""] ซึ่งได้แก่ ย่อหน้า ขึ้นบรรทัดใหม่ ช่องว่าง และสตริงว่าง

หลักการทำงานคือ splitter จะพยายามแบ่งที่ย่อหน้าก่อน จากนั้นตรวจสอบว่าค่า chunk_size และ chunk_overlap เป็นไปตามเงื่อนไขหรือไม่ หากไม่เป็นไปตามเงื่อนไข ก็จะแบ่งที่ประโยค คำ และอักขระแต่ละตัวตามลำดับ

ในทางปฏิบัติ มักต้องทดลองปรับค่า chunk_size และ chunk_overlap หลายรอบ เพื่อหาค่าที่เหมาะสมกับเอกสารของคุณ

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

การพัฒนาแอปพลิเคชัน LLM ด้วย LangChain

ดูคอร์ส

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

  • Import คลาส RecursiveCharacterTextSplitter จาก langchain_text_splitters
  • สร้าง instance ของ RecursiveCharacterTextSplitter โดยกำหนด separators=["\n", " ", ""], chunk_size=24 และ chunk_overlap=10
  • ใช้เมธอด .split_text() เพื่อแบ่ง quote แล้วพิมพ์ chunk และความยาวของแต่ละ chunk

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

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

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