Strategi Pemotongan (Tetap, Kalimat, Semantik)
Pahami pertukaran antara pemotongan berukuran tetap, berbasis kalimat, dan semantik untuk kualitas pengambilan.
Strategi Pemotongan (Tetap, Kalimat, Semantik) adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Mengapa Membagi Menjadi Potongan?
Anda tidak dapat menyematkan seluruh PDF 200 halaman sebagai satu vektor—vektor tersebut akan terlalu abstrak untuk dicocokkan dengan kueri tertentu. Anda membagi dokumen menjadi bagian-bagian yang lebih kecil (masing-masing sekitar 200–800 token), menyematkan setiap bagian, lalu melakukan pencarian pada tingkat potongan.
Pemotongan Berukuran Tetap
Pendekatan paling sederhana—bagi setiap N karakter atau token:
def fixed_chunks(text, chunk_size=1000, overlap=200):
chunks = []
i = 0
while i < len(text):
chunks.append(text[i:i + chunk_size])
i += chunk_size - overlap
return chunks
sample_text = "A" * 2500
chunks = fixed_chunks(sample_text, chunk_size=1000, overlap=200)
print(f"Split {len(sample_text)} characters into {len(chunks)} chunks")
for i, c in enumerate(chunks):
print(f"Chunk {i+1}: {len(c)} chars")
Mengapa Tumpang Tindih?
Tumpang tindih (biasanya 10–20% dari ukuran potongan) memastikan kalimat yang melintasi batas muncul secara utuh setidaknya dalam satu potongan. Tanpanya, fakta penting yang terbelah di antara potongan mungkin tidak dapat diambil.
Pemotongan Berbasis Kalimat
Bagi berdasarkan batas kalimat—jangan pernah memutus kalimat di tengah:
import re
def sentence_chunks(text, max_chars=1000):
sentences = re.split(r'(?<=[.!?])\s+', text)
chunks = []
current = ''
for s in sentences:
if len(current) + len(s) > max_chars and current:
chunks.append(current.strip())
current = s
else:
current += ' ' + s
if current:
chunks.append(current.strip())
return chunks
sample_text = "This is sentence one. This is sentence two! Is this sentence three? Yes it is."
chunks = sentence_chunks(sample_text, max_chars=40)
for i, c in enumerate(chunks):
print(f"Chunk {i+1}: {c!r}")
Pemisahan Rekursif (LangChain)
RecursiveCharacterTextSplitter milik LangChain mencoba memisahkan berdasarkan batas paragraf terlebih dahulu, lalu kalimat, kemudian kata—dengan mempertahankan struktur semaksimal mungkin.
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=800,
chunk_overlap=100,
separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_text(document)Pemotongan Semantik
Bagi saat topik berubah. Implementasi menyematkan setiap kalimat dan membagi saat vektor penyematan kalimat yang berurutan berjauhan.
Perhitungannya lebih lambat, tetapi menghasilkan potongan yang koheren secara topik.
Pemotongan yang Memahami Markdown
Untuk dokumen Markdown, bagi berdasarkan batas judul agar setiap bagian tetap bersama. Setiap potongan mewarisi judul induknya sebagai konteks.
Pemotongan yang Memahami Kode
Untuk kode sumber, bagi berdasarkan batas fungsi/kelas, bukan jumlah karakter. Alat seperti tree-sitter memberi Anda pemotongan yang memahami AST.
Memilih Ukuran Potongan
Perbandingannya:
- Potongan kecil (sekitar 200 token) — pencocokan yang presisi, tetapi lebih banyak potongan untuk dikelola
- Potongan besar (sekitar 1000 token) — lebih banyak konteks untuk setiap pencocokan, tetapi kurang presisi
Bawaan: 500–800 token dengan tumpang tindih 10–20%.
Mempertahankan Metadata
Lampirkan metadata ke setiap potongan:
- URL sumber / jalur berkas
- Nomor halaman
- Judul dokumen
- Bagian / judul
- Stempel waktu pembuatan / pembaruan
Berguna untuk penyaringan, sitasi, dan pemeringkatan ulang.
Potongan Kontekstual
Teknik terbaru: awali setiap potongan dengan konteks 1 baris yang dibuat oleh LLM (misalnya, "Potongan ini berasal dari laporan keuangan perusahaan kuartal 2 tahun 2024 dan membahas pendapatan."). Meningkatkan pengambilan sebesar 30–50%.
Potongan Induk-Anak
Indeks potongan kecil untuk pencocokan yang presisi, tetapi ambil paragraf induknya yang lebih besar (LARGER) sebagai konteks:
- Sematkan potongan pada tingkat kalimat
- Saat cocok, kembalikan potongan induk sepanjang 800 token
Mengapa Tumpang Tindih?
Mengapa potongan biasanya saling tumpang tindih sebesar 10–20%?
Ringkasan
Mulailah dengan pemisahan karakter rekursif pada sekitar 800 token dengan tumpang tindih 10%. Tambahkan pemahaman semantik / struktural seiring bertambahnya kebutuhan Anda.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Strategi Pemotongan (Tetap, Kalimat, Semantik)” gratis?
Ya — teks lengkap “Strategi Pemotongan (Tetap, Kalimat, Semantik)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Strategi Pemotongan (Tetap, Kalimat, Semantik)”?
Pahami pertukaran antara pemotongan berukuran tetap, berbasis kalimat, dan semantik untuk kualitas pengambilan. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Strategi Pemotongan (Tetap, Kalimat, Semantik)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Apa yang Diatasi RAG (Batas Pengetahuan, Halusinasi)
- Strategi Pemotongan (Tetap, Kalimat, Semantik)
- Mengindeks Sekumpulan Dokumen
- Membangun RAG Naif dengan FAISS atau Chroma