Parçalama Stratejileri (Sabit, Cümle, Anlamsal)
Getirme kalitesi açısından sabit boyutlu, cümle duyarlı ve anlamsal parçalama arasındaki ödünleşimleri öğrenin.
Parçalama Stratejileri (Sabit, Cümle, Anlamsal), CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Neden Parçalamalı?
200 sayfalık bir PDF'yi tek bir vektör olarak gömemezsiniz — vektör, belirli sorgularla eşleşemeyecek kadar soyut olur. Belgeyi daha küçük parçalara (her biri yaklaşık 200-800 belirteç) ayırır, her parçayı gömer ve parça düzeyinde arama yaparsınız.
Sabit Boyutlu Parçalama
En basit yaklaşım — her N karakterde veya belirteçte bir bölün:
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")
Neden Örtüşme?
Örtüşme (genellikle parça boyutunun %10-20'si), sınırı aşan bir cümlenin en az bir parçada bütün hâlinde bulunmasını sağlar. Örtüşme olmazsa parçalara bölünen önemli bir bilgi getirilemeyebilir.
Cümle Tabanlı Parçalama
Cümle sınırlarından bölün — cümlenin ortasından asla kesmeyin:
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}")
Özyinelemeli Bölme (LangChain)
LangChain'in RecursiveCharacterTextSplitter bileşeni önce paragraf sınırlarından, ardından cümlelerden ve son olarak sözcüklerden bölmeye çalışır — yapıyı mümkün olduğunca korur.
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=800,
chunk_overlap=100,
separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_text(document)Anlamsal Parçalama
Konunun değiştiği yerlerden bölün. Uygulamalar her cümleyi gömer ve ardışık cümlelerin gömme vektörleri birbirinden uzak olduğunda böler.
Hesaplanması daha yavaştır, ancak konu bütünlüğü olan parçalar üretir.
Markdown Farkındalıklı Parçalama
Markdown belgelerinde bölümleri bir arada tutmak için başlık sınırlarından bölün. Her parça, üst başlıklarını bağlam olarak devralır.
Kod Farkındalıklı Parçalama
Kaynak kodunda karakter sayısına göre değil, işlev ve sınıf sınırlarına göre bölün. tree-sitter gibi araçlar AST farkındalıklı parçalama yapmanızı sağlar.
Parça Boyutunu Seçme
Ödünleşimler:
- Küçük parçalar (yaklaşık 200 belirteç) — eşleşmeler daha kesin olur, ancak yönetilecek parça sayısı artar
- Büyük parçalar (yaklaşık 1000 belirteç) — her eşleşmede daha fazla bağlam bulunur, ancak kesinlik azalır
Varsayılan: %10-20 örtüşmeyle 500-800 belirteç.
Üst Veriyi Koruma
Her parçaya üst veri ekleyin:
- Kaynak URL'si / dosya yolu
- Sayfa numarası
- Belge başlığı
- Bölüm / başlık
- Oluşturulma / güncellenme zaman damgaları
Filtreleme, kaynak gösterme ve yeniden sıralama için kullanışlıdır.
Bağlam İçeren Parçalar
Yeni bir teknik: her parçanın başına LLM tarafından oluşturulan tek satırlık bir bağlam ekleyin (örneğin, "Bu parça, geliri ele alan şirketin 2024 2. çeyrek mali raporundandır."). Getirme başarısını %30-50 artırır.
Üst ve Alt Parçalar
Kesin eşleşme için küçük parçaları dizine ekleyin, ancak bağlam için bunların LARGER üst paragrafını getirin:
- Cümle düzeyindeki parçaları gömün
- Eşleşme olduğunda üstteki 800 belirteçlik parçayı döndürün
Neden Örtüşme?
Parçalar neden genellikle %10-20 oranında örtüşür?
Özet
Yaklaşık 800 belirteçlik, %10 örtüşmeli özyinelemeli karakter bölmeyle başlayın. İhtiyaçlarınız arttıkça anlamsal ve yapısal farkındalık ekleyin.
Sıkça Sorulan Sorular
“Parçalama Stratejileri (Sabit, Cümle, Anlamsal)” dersi ücretsiz mi?
Evet — “Parçalama Stratejileri (Sabit, Cümle, Anlamsal)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Parçalama Stratejileri (Sabit, Cümle, Anlamsal)” dersinde ne öğreneceğim?
Getirme kalitesi açısından sabit boyutlu, cümle duyarlı ve anlamsal parçalama arasındaki ödünleşimleri öğrenin. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Parçalama Stratejileri (Sabit, Cümle, Anlamsal)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- RAG Ne İşe Yarar (Bilgi Kesim Tarihi, Halüsinasyonlar)
- Parçalama Stratejileri (Sabit, Cümle, Anlamsal)
- Belge Kümesini Dizinleme
- FAISS veya Chroma ile Naif RAG Oluşturma