Beş satır gördüğünüz dosyada kaç kayıt var?
Bir not listesini yapay zekâya verdiniz ve “virgüllerden böl, her satırı tabloya aktar” dediniz. İlk notun içinde virgül, ikinci notun içinde satır sonu varsa bu talimat veri yapısını bozabilir. Metin dosyasındaki satır, her zaman bağımsız bir iş kaydı değildir. Alanın içeriği ile alanları ayıran işareti birbirinden ayıramayan bir işlem, düzgün görünen fakat kimlikleri yanlış eşleştiren bir tablo üretir.
Bu çalışmada üç kısa notu aktaracağız. Bütün kimlikler ve notlar sentetiktir; gerçek bir dış sistem aktarımı yapılmamıştır. Örneğin sözleşmesi açık: başlık var, iki alan var, ayırıcı virgül, metin çevreleyicisi çift tırnak, kodlama UTF-8. Dosyada kayıt ve alan içi satır sonlarını CRLF kabul ediyoruz. Ekrandaki kod kutusu bunları yeni satır olarak gösterir; kutunun görsel satır kırması ayrıca bir dosya satırı sayılmaz.
id,not C1,"Kalem, defter" C2,"İlk bölüm İkinci bölüm" C3,"Adı ""Mavi"" olsun"
Burada başlıktan sonra dört fiziksel satır vardır, fakat üç veri kaydı bulunur. C2’nin notu iki satıra yayılır. İkinci bölüm ifadesinin önünde yeni bir kimlik olmaması bir eksik kayıt değildir; aynı alanın devamıdır. C1’deki virgül de üçüncü bir sütun açmaz. C3’te art arda gelen çift tırnaklar ise son metinde tek bir tırnak karakterini temsil eder.
Ayrıştırıcıya biçimi, modele görevi verin
RFC 4180, virgül veya satır sonu içeren alanların çift tırnak içine alınmasını ve alan içindeki çift tırnağın ikinci bir çift tırnakla gösterilmesini anlatır. Bu belge bilgilendirici niteliktedir; bütün CSV üreticilerinin aynı lehçeyi kullandığını garanti etmez. Bu yüzden gerçek aktarımda ayırıcı ve tırnak davranışını üreticiyle doğrulayın. Noktalı virgüllü bir dosyayı buradaki virgül sözleşmesiyle sessizce yorumlamayın.Kaynak: RFC Editor — RFC 4180, CSV biçimi
Aşağıdaki sentetik CSV için aktarım kontrolü hazırla. Sözleşme: UTF-8, başlık id/not, virgül ayırıcı, çift tırnak çevreleyici, alan içindeki çift tırnak çiftlenir; kayıt ve iç satır sonu CRLF. Veriyi ham satır bölme yöntemiyle parçalama. Mantıksal kayıt sayısını, alan sayısını ve her kimliğin tam notunu ver. C2 içindeki satır sonunu koru. Bozuk tırnak görürsen yeni kimlik veya eksik metin uydurmak yerine ayrıştırma hatası bildir. Gerçek dosya içe aktarımı yaptığını söyleme.
Gerçek dosyada işi desteklenen bir CSV ayrıştırıcısına veya içe aktarım aracına yaptırın. Yapay zekâ burada biçim sözleşmesini açıklamak, küçük kontrol örneklerini hazırlamak ve sonuçtaki farkları sınıflandırmak için kullanılabilir. Çok sayıda kaydı sohbet içinde yeniden yazdırmak, aktarım denetiminin kendisi değildir. Satırların tamamını görmeyen bir modele eksiksizlik onayı verdirmeyin. Sözleşme ve beklenen sayılar, aracın ürettiği tabloyu kontrol eden ayrı girdiler olmalıdır.
| Kimlik | Notun görünür gösterimi | Alan sayısı |
|---|---|---|
| C1 | Kalem, defter | 2 |
| C2 | İlk bölüm ⏎ İkinci bölüm | 2 |
| C3 | Adı "Mavi" olsun | 2 |
Tablodaki ⏎ işareti, açıklama için satır sonunu görünür kılar; gerçek not metnine eklenecek bir karakter değildir. C2’nin aktarılmış hücresinde iki bölümün arasında satır sonu bulunmalıdır. Bir görüntüleyici bunu tek satırda gösterebilir. Bu nedenle yalnızca hücrenin ekrandaki yüksekliğine bakmayın; metnin kendisini kontrol edin. C3’teki tırnakların kaybolması da bir biçim güzelleştirmesi sayılmaz, kaynak içeriğin değişmesidir.
Üç sayı ve üç içerik karşılaştırması
Kontrole kimliklerden başlayın: C1, C2 ve C3 birer defa bulunmalı. Başlık veri kaydı sayılmamalı; toplam üç kayıt ve her kayıtta iki alan olmalıdır. Ardından notları tek tek karşılaştırın. Bu küçük kümede aynı toplam kayıt sayısını koruyan bir hata hâlâ mümkündür. Örneğin C2’nin ikinci satırı C3’e eklenebilir. Sayım geçse bile kimlik ile notun birlikte doğrulanması gerekir.
- C1: Virgül alanın içinde kalmış mı; “Kalem” ile “defter” aynı notta mı?
- C2: İki metin parçası aynı kayıt içinde ve aralarında gerçek satır sonuyla duruyor mu?
- C3: Mavi sözcüğünün iki yanında birer çift tırnak korunmuş mu?
- Hata kaydı: Ayrıştırılamayan girdi ayrı tutulmuş mu; sistem bunu başarılı boş tablo gibi sunuyor mu?
Bir geri dönüş kontrolü de ekleyin: ayrıştırılmış tabloyu aynı CSV sözleşmesiyle dışa aktarın ve yeniden okuyun. Karşılaştırmayı yalnızca dosya baytları üzerinden yapmayın; geçerli bir yazıcı gerekli olmayan alanları da tırnak içine alabilir. Öncelikli koşul, yeniden okunduğunda aynı üç kimlik ve aynı alan metinlerinin elde edilmesidir. Satır sonlarının dönüştürülmesine izin veriyorsanız bunu ayrıca yazın; bu örnekte içerideki CRLF korunması istenmiştir.
3 veri kaydı; 2 alan/kayıt; kimlikler benzersiz. C1 iç virgülü korundu. C2 tek kayıt olarak kaldı ve iç satır sonu korundu. C3 iç tırnakları korundu. Sonuç açıklama amacıyla hazırlanmıştır; gerçek uygulama aktarımında aynı denetimler yeniden yapılmalıdır.
Kapanan tırnağı kaldırınca ne olmalı?
Aktarım aracının önizlemesi de yararlı bir kontrol noktasıdır. Önizlemede üçüncü bir sütun veya boş kimlikli ek satır görürseniz devam etmeden sözleşmeye dönün. Sonradan bu satırları elle birleştirmek hatayı görünmez kılabilir. Üretici dosyayı düzelttiğinde aynı küçük kontrol kümesini tekrar çalıştırın ve önceki hata kaydıyla ilişkilendirin.
Alıştırmada C2’nin ikinci satırındaki kapanış tırnağını kaldırın ve C3 satırını da içermeyen, burada biten bir dosya düşünün. Yalnızca başlık, C1 ve kapanmamış C2 vardır. Bu değiştirilmiş dosyada kaç eksiksiz kaydın okunabildiğini ve son alan için ne yapılması gerektiğini yazın. Amacınız bozuk dosyayı tahmin ederek düzeltmek değil, aktarımın nerede güvenilir olmaktan çıktığını göstermektir.
C1 tamamlanmış bir kayıttır. C2 alanı dosya sonunda hâlâ açık olduğu için dosyanın tamamı başarıyla ayrıştırıldı denemez. Katı sözleşmede aktarım hatası bildirilir; kısmi C1 sonucu varsa ayrı ve açıkça kısmi olarak tutulur. Eksik tırnak veya devam metni kaynaktan doğrulanmadan eklenmez.
Bu dosyayla çalışan kişinin teslimatı yalnızca güzel bir tablo değildir. Biçim sözleşmesi, korunmuş ham örnek, mantıksal kayıt sayısı ve hata davranışı birlikte teslim edilmelidir. Aynı düzeni kendi verinizde ilk birkaç kolay kayıtla sınırlamayın; virgül, tırnak ve iç satır sonu içeren küçük bir örnek grubunu özellikle seçin. Analiz istemini ancak bu aktarım kontrolü tamamlandıktan sonra çalıştırın.
Kaynaklar ve doğrulama
- RFC Editor — RFC 4180, CSV biçimi
Virgül, satır sonu ve çift tırnak içeren alanların kayıt sınırları; belge bilgilendirici RFC niteliğindedir.
Erişim ve kontrol:
Üretken Yapay Zekâ ile İş Verimliliği
Üretken Yapay Zekâ ile İş Verimliliği programındaki veri görevlerine, içe aktarımda korunmasını beklediğiniz üç zor örnekle hazırlanabilirsiniz. Böylece analize geçmeden aktarım kalitesini tartışacak bir kontrol setiniz olur.
- Bireysel tarih henüz açıklanmadı