Export ve Tekrarlanabilirlik

Tebrikler! 🎉 Veri temizlemenin baştan sona bir döngüsünü tamamladın. Şimdi sıra temiz veriyi dışarı aktarmakta ve daha da önemlisi, işlemleri başka bir veri setinde yeniden kullanabilmekte.

Son Kontrol Listesi

Export’tan önce her kolonu hızlıca kontrol et:

Kolon Kontrol
id Satır sayısı 30 mu?
full_name Title Case mi?
email Hâlâ GEÇERSİZ var mı? (Custom facet ile bak)
phone Hepsi tek formatta mı?
city Tüm değerler standartlaştı mı?
country Sadece tam ülke isimleri var mı?
birth_date Yeşil mi (tarih tipi)? Timeline facet kontrol et
registration_date Yeşil mi?
gender Sadece Male / Female?
subscriber Sadece Yes / No?
income Yeşil mi (sayı tipi)? Numeric facet kontrol et
score Yeşil mi?
İpucuÖnce facet aç, sonra export et

Her kategorik kolonu Text Facet ile bir kez kontrol etmek 30 saniye sürer ve gözden kaçan bir varyantı yakalar. Export ettikten sonra fark etmek istemediğin türden hatalardır.

CSV Olarak Export

Sağ üstte Export butonuna tıkla. Bir menü açılır:

  • Comma-separated value (CSV) — En yaygın, Excel/Python/R hepsinde açılır.
  • Tab-separated value (TSV) — Tab ile ayrılır, virgüllü içeriklerde daha güvenli.
  • Excel (.xls / .xlsx) — Doğrudan Excel formatı.
  • HTML table — Web sayfasına gömmek için.
  • Templating… — JSON veya özel formatlar için.

CSV ile başla. customers_clean.csv olarak indir.

NotTarih formatı export’ta

Tarih kolonları varsayılan olarak ISO 8601 (2020-01-15T00:00:00Z) formatında çıkar. Eğer sadece 2020-01-15 istiyorsan, export öncesi şu transformu uygula:

value.toString("yyyy-MM-dd")

Bu kolonu string’e çevirir ama saat bilgisini atlar. Tarih tipinin avantajını kaybederiz ama görsel olarak temiz bir CSV elde ederiz.

İşlemleri Sakla — Tekrarlanabilirlik

Şimdi en sevdiğim özellik geliyor. Yaptığın tüm temizlik adımlarını JSON olarak dışarı alıp, başka bir kirli CSV geldiğinde tek tıkla aynı temizliği uygulayabilirsin.

Operasyon Geçmişini Çıkarmak

Sol üstte Undo / Redo sekmesine tıkla.

Listede tüm yaptığın işlemler görünür: cluster, transform, common transform, vb. Liste sayfasının altında Extract… butonu var, ona tıkla.

Açılan pencerede tüm işlemlerin JSON formatında listesini göreceksin. Onay kutuları işaretli olanlar dışa aktarılacak. Şuna benzer:

[
  {
    "op": "core/text-transform",
    "engineConfig": {...},
    "columnName": "score",
    "expression": "grel:value.replace(\",\", \".\")",
    "onError": "keep-original",
    ...
  },
  {
    "op": "core/mass-edit",
    "columnName": "gender",
    "expression": "value",
    "edits": [
      {"from": ["M", "m"], "to": "Male", ...},
      ...
    ]
  },
  ...
]

Bu JSON’u kopyala ve operations.json gibi bir adla kaydet.

Aynı İşlemleri Yeni Veriye Uygulama

Yarın aynı kaynaktan yeni bir kirli CSV geldi. Aynı temizliği baştan yapmak yerine:

  1. Yeni projeyi oluştur (yeni CSV ile).
  2. Undo / Redo → Apply… butonuna bas.
  3. Kaydettiğin operations.json içeriğini yapıştır.
  4. Perform Operations bas.

Tüm temizlik otomatik uygulanır. 30 dakikalık iş 5 saniyede biter.

İpucuTekrarlanabilirlik = veri analizi disiplini

Bu özellik OpenRefine’ın Excel’e karşı en büyük avantajıdır. Excel’de elle yapılan her temizlik, yarın gelecek veriyle tekrar yapılması gereken iştir. OpenRefine’da bir kez yapıyorsun, sonsuza kadar kullanıyorsun.

Veri gazeteciliği, akademik araştırma, kurumsal raporlama — tüm bu alanlarda tekrarlanabilirlik profesyonelliğin işareti.

Öğrendiğin Beceriler

Bu eğitimde şunları pratik ettin:

Temel araçlar

  • Text Facet ile kategorik değer dağılımı görmek
  • Cluster & edit (fingerprint, ngram) ile yazım varyantlarını birleştirmek
  • Common transforms (trim, titlecase, lowercase, to number, to date)
  • Numeric facet ve Timeline facet ile dağılım görselleştirmek
  • Custom text facet ile dinamik etiketleme

GREL ifadeleri

  • value.replace(eski, yeni) ile metin değişimi
  • Zincirleme replace ile çoklu temizlik
  • if(koşul, doğru, yanlış) ile koşullu mantık
  • value.toDate(...) ile tarih çevirme
  • value.length(), substring(), match(/regex/)
  • cells["başka_kolon"].value ile kolonlar arası referans

Stratejik düşünme

  • Hangi sırayla temizlik yapılacağı (kategorik → sayısal → tarih → duplicate)
  • Eksik veriyi tahminle doldurmak yerine boş bırakmak
  • Para birimi/tarih formatı gibi belirsizliklerde varsayımları açık yapmak
  • Duplicate temizliğinde tutma/silme kararı

Veri güvenliği farkındalığı

  • OpenRefine’ın yerel çalıştığı, varsayılanda veri göndermediği
  • Reconcile, URL fetch gibi özelliklerin verinin dışarı çıkmasına neden olduğu
  • Hassas veri için en iyi pratikler

Daha İleri Konular

Bu eğitim seni başlangıç seviyesinden orta seviyeye taşıdı. İleri konular:

  • Reconciliation: Wikidata gibi servislerle eşleştirme (veri güvenliği uyarılarını hatırla)
  • Records mode: Hiyerarşik veri (ana satır + alt satırlar) için
  • GREL ileri seviye: forEach, forNonBlank, JSON parsing
  • Python/Jython/Clojure: GREL’in yetmediği yerlerde tam programlama dili
  • Add column based on this column: Mevcut kolondan yeni kolon türetmek
  • Split / Join columns: Kolon bölme ve birleştirme

Bu konuların hepsi resmi dokümantasyonda detaylı: openrefine.org/docs/manual.

Son Söz

Veri temizlemek sıkıcı görünür ama analizinin kalitesini en çok belirleyen adımdır. “Garbage in, garbage out” — pis veri ile yapılan analiz pis sonuç verir. OpenRefine bu işi hızlandırır, dürüst tutar ve tekrarlanabilir kılar.

Eline kirli bir veri geldiğinde artık panik olmadan oturup şu refleksi göstereceksin:

  1. Önce gözat, sorunları listele.
  2. Kategorikleri standartlaştır (facet + cluster).
  3. Sayısalları temizle (GREL replace + to number).
  4. Tarihleri çevir (to date + multi-format).
  5. Geçerlilik kontrolleri (custom facet).
  6. Duplicate’leri en sona bırak.
  7. Operations.json’u sakla, geleceğe yatırım yap.

Bol temiz veriler! 🧹


NotGeri bildirim

Bu eğitimi geliştirmek için her türlü öneriye açığım. GitHub repo’sunda Issue açabilirsin ya da pull request gönderebilirsin.

Başa dön