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? |
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.
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:
- Yeni projeyi oluştur (yeni CSV ile).
- Undo / Redo → Apply… butonuna bas.
- Kaydettiğin
operations.jsoniçeriğini yapıştır. - Perform Operations bas.
Tüm temizlik otomatik uygulanır. 30 dakikalık iş 5 saniyede biter.
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ıkvalue.toDate(...)ile tarih çevirmevalue.length(),substring(),match(/regex/)cells["başka_kolon"].valueile 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:
- Önce gözat, sorunları listele.
- Kategorikleri standartlaştır (facet + cluster).
- Sayısalları temizle (GREL replace + to number).
- Tarihleri çevir (to date + multi-format).
- Geçerlilik kontrolleri (custom facet).
- Duplicate’leri en sona bırak.
- Operations.json’u sakla, geleceğe yatırım yap.
Bol temiz veriler! 🧹
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.