Veri Normalizasyonunun Önemi
Birden fazla kaynaktan veri toplayan sistemlerde, her kaynak farklı formatlar, adlandırma kuralları ve veri yapıları kullanır. Bir emlak platformu farklı kaynaklardan gelen ilanları toplarken, aynı daire bir kaynakta "3+1 daire, 120 m2, Kadıköy" olarak, diğerinde "3 oda 1 salon, 120 metrekare, Kadıköy/İstanbul" olarak listelenebilir. Bu iki kaydın aynı mülkü temsil ettiğini tespit edip birleştirmek, veri normalizasyon ve entity matching süreçlerinin temel görevidir.
Normalizasyon yapılmadan sunulan veriler, kullanıcı deneyimini ciddi şekilde bozar. Aynı ürünün farklı kaynaklardan mükerrer olarak listelenmesi, tutarsız fiyat formatları ve eksik alanlar güven kaybına neden olur. Veri kalitesi, agregatör platformların başarısını doğrudan belirleyen en kritik faktördür.
Bu problem yalnızca agregatör platformlarla sınırlı değildir. CRM sistemlerinde müşteri kayıtlarının birleştirilmesi, sağlık bilişiminde hasta kayıtlarının eşleştirilmesi, e-ticarette ürün katalog yönetimi ve finans sektöründe karşı taraf risk değerlendirmesi gibi birçok alanda entity resolution kritik bir ihtiyaçtır.
Şema Haritalama (Schema Mapping)
Heterojen Veri Kaynaklarını Anlama
Her veri kaynağının kendine özgü bir şeması vardır. Bir e-ticaret sitesi ürün fiyatını "price" alanında TL cinsinden tutarken, diğeri "fiyat" alanında kuruş cinsinden saklayabilir. Bir emlak sitesi oda sayısını "3+1" formatında sunarken, başka bir site "rooms: 3, living_rooms: 1" şeklinde ayrı alanlar kullanabilir. Bazı kaynaklar tarih bilgisini ISO 8601 formatında sunarken, diğerleri "25 Şubat 2026" gibi yerelleştirilmiş metin formatı kullanabilir.
Şema haritalama, kaynak şemaları ile hedef (kanonik) şema arasındaki ilişkiyi tanımlamaktır. Bu süreçte her kaynak için bir mapping konfigürasyonu oluşturulur. Mapping konfigürasyonu, kaynak alanın adını, hedef alandaki karşılığını ve gerekli dönüşüm kurallarını içerir. Bu konfigürasyonlar genellikle JSON veya YAML formatında saklanır ve versiyon kontrolü altında tutulur.
Kanonik Şema Tasarımı
İyi tasarlanmış bir kanonik şema, tüm kaynakların ortak özelliklerini kapsarken genişlemeye de açık olmalıdır. Zorunlu alanlar (başlık, fiyat, kategori gibi), opsiyonel alanlar (açıklama, görseller, özellikler gibi) ve kaynak metadata (kaynak site, çekilme tarihi, güncelleme zamanı) olmak üzere üç katmanlı bir yapı önerilir.
JSON Schema veya Pydantic modelleri ile kanonik şemayı tanımlayarak veri doğrulama süreçlerini otomatikleştirebilirsiniz. Şemaya uymayan kayıtlar karantinaya alınarak manuel inceleme kuyruğuna yönlendirilir. Şema evrimini yönetmek için versiyonlama stratejisi belirleyin; geriye dönük uyumluluğu koruyarak yeni alanlar eklenmesine izin verin.
Dönüşüm Kuralları
Her alan için spesifik dönüşüm kuralları tanımlanmalıdır. Metin alanları için büyük-küçük harf standardizasyonu, fazla boşlukların temizlenmesi ve Unicode normalizasyonu uygulanır. Sayısal alanlar için birim dönüşümleri (m2 vs metrekare, TL vs kuruş) yapılır. Kategorik alanlar için eşanlamlı terimlerin birleştirilmesi (daire, apartman dairesi, flat gibi) ve hiyerarşik kategori eşleştirmesi gerçekleştirilir.
Entity Resolution Algoritmaları
Problem Tanımı
Entity resolution (varlık çözümleme), farklı kaynaklardan veya aynı kaynağın farklı zaman dilimlerinden gelen kayıtların aynı gerçek dünya varlığını temsil edip etmediğini belirlemektir. Bu problem, record linkage, entity matching ve deduplication olarak da adlandırılır.
Problemin zorluğu, kayıtların nadiren birebir eşleşmesinden kaynaklanır. Yazım hataları, farklı kısaltmalar, eksik bilgiler ve format farklılıkları tam eşleşmeyi imkansız kılar. Bu nedenle olasılıksal ve bulanık eşleştirme yöntemlerine ihtiyaç duyulur. Problem, iki temel senaryoda karşımıza çıkar: kayıtlar arası eşleştirme (iki farklı veri setindeki aynı varlıkları bulma) ve kayıt içi deduplikasyon (aynı veri setindeki mükerrer kayıtları tespit etme).
Blocking Stratejileri
Tüm kayıt çiftlerini karşılaştırmak, n kayıt için O(n^2) karmaşıklığa sahip olduğundan büyük veri setlerinde pratik değildir. Milyon kayıtlık bir veri setinde trilyonlarca karşılaştırma yapmak gerekir. Blocking, kayıtları belirli kriterlere göre gruplara ayırarak yalnızca aynı gruptaki kayıtları karşılaştırır ve hesaplama maliyetini dramatik şekilde düşürür.
Yaygın blocking stratejileri arasında lokasyon bazlı blocking (aynı şehir veya ilçedeki kayıtlar), kategori bazlı blocking (aynı ürün kategorisindeki kayıtlar), fiyat aralığı bazlı blocking ve fonetik blocking (benzer sesletilen isimler) yer alır. Birden fazla blocking stratejisini birleştirerek (union blocking) kapsamı artırabilirsiniz. Sorted neighborhood yöntemi ile sıralanmış kayıtlar üzerinde kayan pencere kullanarak blok sınırlarındaki eşleşmeleri yakalamak da etkili bir tekniktir.
Karşılaştırma Fonksiyonları
Blocking ile daraltılan aday çiftler, alan bazında karşılaştırma fonksiyonları ile değerlendirilir. Her alan için uygun benzerlik metriği seçilmelidir: metin alanları için string similarity, sayısal alanlar için numerik fark veya oran hesabı, tarih alanları için zaman aralığı ve konum alanları için coğrafi mesafe (Haversine formülü) hesaplanır. Alan bazlı benzerlik skorlarının birleştirilmesinde, her alanın ayırt edici gücüne göre ağırlıklandırma yapılır.
Eşleşme Kararı
Alan bazlı benzerlik skorları hesaplandıktan sonra, genel bir eşleşme kararı verilmelidir. Deterministik yaklaşımda, belirli alanların eşleşmesi zorunlu tutulur (kural tabanlı). Olasılıksal yaklaşımda (Fellegi-Sunter modeli), alan bazlı ağırlıklar kullanılarak toplam benzerlik skoru hesaplanır ve bir eşik değere göre karar verilir. Eşik değer seçimi kritiktir: düşük eşik daha fazla eşleşme bulur ama yanlış pozitifleri artırır; yüksek eşik yanlış pozitifleri azaltır ama gerçek eşleşmeleri kaçırabilir.
Fuzzy Matching Teknikleri
Levenshtein Mesafesi
İki string arasındaki minimum düzenleme mesafesini ölçer. Ekleme, silme ve değiştirme operasyonlarının sayısını hesaplar. "Kadıköy" ile "Kadikoy" arasındaki Levenshtein mesafesi 2'dir. Kısa metinlerde etkili olsa da uzun metinlerde performans sorunu yaşanabilir; hesaplama karmaşıklığı O(m*n) olup büyük metinlerde yavaşlar.
Normalize edilmiş Levenshtein mesafesi, string uzunluğuna bölünerek 0-1 arasında bir benzerlik skoru elde edilir. Bu sayede farklı uzunluktaki metinler karşılaştırılabilir hale gelir. Damerau-Levenshtein varyantı, ek olarak bitişik karakter transpozisyonunu da (yer değiştirme) bir operasyon olarak sayar ve yazım hatalarını daha iyi yakalar.
Jaro-Winkler Benzerliği
Karakter sıralamasını ve ortak karakterleri dikkate alan bir benzerlik metriğidir. Jaro benzerliği üzerine, ortak ön ek için bonus puan ekleyen Winkler varyantı, isim ve adres eşleştirmede Levenshtein'a göre daha iyi sonuçlar verir. Aynı harflerle başlayan metinlere daha yüksek skor atanması, gerçek dünya verilerindeki ortak desenleri yakalamada avantaj sağlar. Kısa metinlerde ve isim karşılaştırmalarında tercih edilen bir metriktir.
TF-IDF Bazlı Benzerlik
Uzun metin alanlarında (ürün açıklamaları, ilan detayları) kelime bazlı benzerlik ölçmek için TF-IDF (Term Frequency - Inverse Document Frequency) vektörleri kullanılır. Her kayıt bir vektöre dönüştürülür ve cosine similarity ile benzerlik hesaplanır. Bu yöntem, nadir kelimelere daha fazla ağırlık vererek ayırt edici özellikleri öne çıkarır. "Daire" kelimesi her emlak ilanında geçerken "çatı katı" yalnızca belirli ilanlarda geçer; TF-IDF bu farkı otomatik olarak yakalar.
N-gram Benzerliği
Metni n uzunluğundaki alt dizilere (n-gram) ayırarak küme bazlı benzerlik hesaplar. Jaccard benzerliği veya Dice katsayısı ile iki metnin n-gram kümeleri karşılaştırılır. Yazım hatalarına ve karakter düzenindeki küçük farklılıklara dayanıklıdır. Bigram (n=2) ve trigram (n=3) en yaygın kullanılan seçeneklerdir. Karakter n-gramları kelime sınırlarına bağımlı olmadığından, bitişik yazılan veya farklı şekillerde ayrılan kelimeleri de yakalayabilir.
Fonetik Algoritmalar
Soundex, Metaphone ve Double Metaphone gibi fonetik algoritmalar, kelimelerin sesletimlerine dayalı kodlar üretir. "Kadıköy", "Kadikoy" ve "Kadikoi" gibi farklı yazımlar aynı fonetik koda dönüştürülerek eşleştirilebilir. Türkçe için özelleştirilmiş fonetik algoritmalar, standart İngilizce algoritmalarına göre daha doğru sonuçlar verir.
Deduplikasyon Stratejileri
Tam Eşleşme Deduplikasyonu
Belirli alanların (örneğin URL, SKU, ilan numarası) birebir eşleşmesi ile tespit edilen mükerrerlerdir. Hash fonksiyonları (MD5, SHA-256) kullanılarak hızlıca tespit edilir. En basit ama en az kapsamlı yöntemdir; yalnızca tam kopyaları yakalar. Birleşik anahtar (composite key) oluşturarak birden fazla alanın kombinasyonuna dayalı eşleştirme yapılabilir.
Bulanık Deduplikasyon
Fuzzy matching teknikleri ile yakın eşleşmeleri tespit eder. Aynı ürünün farklı başlıklarla, farklı fiyat formatlarıyla veya farklı açıklamalarla girilmiş kopyalarını yakalar. Daha kapsamlı ama daha fazla hesaplama gücü gerektirir. Yanlış pozitif oranını kontrol altında tutmak için eşik değerler dikkatli ayarlanmalıdır. Precision-recall dengesi iş gereksinimlerine göre kalibre edilir.
Geçişli Deduplikasyon (Transitive Closure)
A kaydı B ile, B kaydı C ile eşleşiyorsa, A ve C de aynı varlığı temsil eder. Union-Find (Disjoint Set) veri yapısı ile bu geçişli ilişkiler verimli şekilde yönetilir. Ancak dikkatli olunmazsa hatalı zincirleme eşleşmeler oluşabilir; tek bir yanlış eşleşme binlerce kaydı hatalı şekilde birleştirebilir. Cluster boyutu sınırlaması ve insan doğrulaması ile bu risk azaltılır.
Birleştirme Stratejisi (Merge Strategy)
Aynı varlığa ait olduğu tespit edilen kayıtlar birleştirilirken, her alan için hangi kaynağın değerinin kullanılacağına karar verilmelidir. Kaynak güvenilirlik sıralaması, güncellik önceliği ve alan doluluk oranı gibi kriterlerle birleştirme kuralları tanımlanır. En güncel fiyat, en detaylı açıklama ve en yüksek çözünürlüklü görsel seçilerek zenginleştirilmiş bir kayıt oluşturulur.
Alana Özgü Normalizasyon
Adres Normalizasyonu
Adres verileri en zorlu normalizasyon alanlarından biridir. "Bağdat Cad.", "Bağdat Caddesi" ve "Bagdat Cd." aynı adresi ifade eder. Mahalle, ilçe, il hiyerarşisi tutarsız olabilir. Posta kodu eksik veya hatalı olabilir.
Adres normalizasyonu için şu adımlar izlenir: kısaltmaların açılması (Cad. yerine Caddesi, Mah. yerine Mahallesi, Sk. yerine Sokak), büyük-küçük harf standartlaştırması, Türkçe karakter düzeltmesi (ı/i, ö/o, ü/u dönüşümleri), posta kodu doğrulaması ve geocoding ile koordinat bazlı eşleştirme. Google Maps Geocoding API veya OpenStreetMap Nominatim gibi servisler adres normalizasyonunu destekler. Koordinat bazlı eşleştirme, metin bazlı yöntemlerin yetersiz kaldığı durumlarda güçlü bir tamamlayıcıdır.
Fiyat Normalizasyonu
Farklı kaynaklardan gelen fiyat verilerinin ortak bir formata dönüştürülmesi gerekir. Para birimi dönüşümü (günlük kur ile), KDV dahil/hariç farklılıkları, birim fiyat hesaplamaları (kg, adet, litre başına) ve fiyat formatı farklılıkları (1.000,00 TL vs 1000 TRY vs 1,000.00 USD) bu süreçte ele alınması gereken konulardır.
Fiyat aykırılıklarının (outlier) tespiti de normalizasyonun parçasıdır. Aynı ürün için diğer kaynaklardan gelen fiyatların ortalamasından belirgin şekilde sapan fiyatlar, veri hatası veya güncelliğini yitirmiş bilgi göstergesi olabilir. Z-score veya IQR yöntemleri ile istatistiksel aykırılık tespiti yapılabilir.
Görsel Deduplikasyon
Agregatör platformlarda aynı ürünün farklı kaynaklardan gelen görselleri birebir aynı olmayabilir. Farklı çözünürlükler, kırpma farkları, filigranlar ve sıkıştırma seviyeleri görselleri piksel bazında farklı kılar. Perceptual hashing (pHash, dHash, aHash) algoritmaları, görsellerin algısal benzerliğini ölçerek aynı görselin farklı versiyonlarını tespit eder.
pHash algoritması, görseli küçültür, gri tonlamaya dönüştürür ve DCT (Discrete Cosine Transform) uygulayarak bir parmak izi oluşturur. İki görselin pHash değerleri arasındaki Hamming mesafesi, görsel benzerliğin güvenilir bir göstergesidir. dHash ise gradyan farkını kullanarak daha hızlı hesaplama sağlar ve ölçeklendirme farklılıklarına karşı dayanıklıdır.
Makine Öğrenmesi Tabanlı Eşleştirme
Özellik Mühendisliği
Entity matching problemi, bir ikili sınıflandırma problemi olarak modellenebilir: iki kayıt aynı varlığı temsil eder (eşleşir) veya etmez. Her kayıt çifti için alan bazlı benzerlik skorları hesaplanarak bir özellik vektörü oluşturulur. Levenshtein mesafesi, Jaro-Winkler skoru, TF-IDF cosine benzerliği, fiyat farkı yüzdesi, coğrafi mesafe ve ortak n-gram sayısı gibi özellikler bu vektörde yer alır. Özellik mühendisliğinin kalitesi, model performansını doğrudan etkiler.
Model Seçimi
Geleneksel makine öğrenmesi modelleri (Random Forest, Gradient Boosting, XGBoost) entity matching için oldukça etkilidir. Bu modeller, kural tabanlı sistemlerin kaçırdığı karmaşık etkileşim desenlerini yakalayabilir. Etiketli eğitim verisi oluşturmak maliyetli olsa da, active learning stratejileri ile minimum etiketleme çabasıyla yüksek performanslı modeller geliştirmek mümkündür. Model yorumlanabilirliği açısından Random Forest ve Gradient Boosting, özellik önem sıralamasını sunarak hangi alanların eşleşme kararında en belirleyici olduğunu gösterir.
Derin Öğrenme Yaklaşımları
BERT ve benzeri transformer modelleri, metin bazlı entity matching'de geleneksel yöntemlerin ötesinde performans sergileyebilir. Kayıt çiftlerinin metin temsillerini girdi olarak alıp eşleşme olasılığını çıktı olarak üreten modeller, özellikle karmaşık ve gürültülü veri setlerinde avantaj sağlar. Siamese network mimarileri, iki kaydın gömme (embedding) vektörlerini karşılaştırarak benzerlik hesaplar. Ancak hesaplama maliyeti ve eğitim verisi ihtiyacı göz önünde bulundurulmalıdır.
Aktif Öğrenme ile Etiketleme
Tüm kayıt çiftlerini manuel etiketlemek pratik değildir. Aktif öğrenme, modelin en belirsiz olduğu örnekleri seçerek insan uzmanına sunmasını sağlar. Bu strateji ile birkaç yüz etiket ile binlerce etiketle eşdeğer performans elde edilebilir. Smart Maple olarak agregatör platform projelerimizde aktif öğrenme tabanlı entity matching pipeline'ları geliştiriyoruz. Etiketleme arayüzü tasarımı da önemlidir; uzmanın hızlı ve doğru karar verebilmesi için kayıt çiftlerinin yan yana, farklılıklar vurgulanarak gösterilmesi gerekir.
Agregatör Platformlardan Pratik Örnekler
Emlak Agregatörü Senaryosu
Bir emlak agregatör platformunda aynı dairenin farklı emlak sitelerinde farklı şekillerde listelendiğini düşünün. Birinci kaynakta "Kadıköy Caferağa 3+1 120m2" olarak, ikincisinde "Caferağa Mah. 3 oda salon 120 metrekare" olarak listeleniyor. Adres normalizasyonu ile her iki kaydın aynı mahallede olduğu, oda sayısı normalizasyonu ile her ikisinin de 3+1 olduğu ve alan normalizasyonu ile her ikisinin de 120 m2 olduğu tespit edilir. Fiyat yakınlığı ve kat bilgisi gibi ek alanlar da kontrol edilerek yüksek bir eşleşme skoru elde edilir.
E-ticaret Fiyat Karşılaştırma Senaryosu
Aynı telefonun farklı e-ticaret sitelerinde listelenmesi durumunda, ürün başlığı benzerliği, marka ve model eşleşmesi, teknik özellik karşılaştırması (RAM, depolama, ekran boyutu) ve EAN/GTIN gibi standart ürün kodları kullanılarak eşleştirme yapılır. Ürün kodları mevcut olduğunda eşleştirme kesin sonuç verir; olmadığında fuzzy matching ve özellik karşılaştırması devreye girer.
Veri Kalitesi İzleme
Kalite Metrikleri
Normalizasyon ve eşleştirme süreçlerinin etkinliğini ölçmek için şu metrikleri izleyin: alan doluluk oranları (her alanın kayıtların yüzde kaçında dolu olduğu), format uyumluluk oranları (kanonik şemaya uygun kayıt yüzdesi), eşleşme precision ve recall değerleri, mükerrer tespit oranları, veri güncellik yüzdeleri ve kaynak bazlı kalite skorları. Bu metrikleri dashboard'larda görselleştirerek trendi takip edin.
Sürekli İyileştirme
Veri normalizasyon kuralları ve entity matching modelleri zamanla güncellenmeli ve iyileştirilmelidir. Kullanıcı geri bildirimleri (yanlış eşleştirme raporları), yeni kaynak entegrasyonları ve değişen veri formatları sürekli adaptasyon gerektirir. A/B testleri ile yeni kuralların veya modellerin mevcut sisteme göre performansını ölçün ve kanıta dayalı iyileştirmeler yapın. Golden dataset (referans veri seti) oluşturarak her değişikliğin etkisini sistematik olarak değerlendirin.
Sonuç
Veri normalizasyon ve entity matching, agregatör platformların ve veri entegrasyon sistemlerinin kalp atışıdır. Farklı kaynaklardan gelen heterojen verileri anlamlı, tutarlı ve güvenilir bir bütüne dönüştürmek, kullanıcı deneyiminin temelini oluşturur. Şema haritalamadan fuzzy matching'e, adres normalizasyonundan makine öğrenmesi tabanlı eşleştirmeye kadar geniş bir araç seti mevcuttur. Kritik olan, probleminizin ölçeğine ve karmaşıklığına uygun araçları seçerek pragmatik bir yaklaşım benimsemektir. Basit kural tabanlı sistemlerle başlayın, metriklere dayalı olarak karmaşıklığı kademeli artırın ve veri kalitesini sürekli izleyerek iyileştirin.
İlgili Makaleler
MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma
Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı
Devamını Oku: MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a TaşımaLLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]
LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek
Devamını Oku: LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri
Devamını Oku: Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
