İçeriğe geç
VINCTUM.SHOP

Türkçe şirket unvanlarında tekrar kayıt bulma: 'Ltd. Şti.' ile 'Limited Şirketi' aynı mı?

Emir Hüseyin İnci · Vinctum4 Ekim 20266 dk okuma

Genel normalizasyon neden yetmez?

CRM, fatura ve tedarikçi listelerinde aynı şirket farklı yazılır: 'ABC TEKSTİL SANAYİ VE TİCARET LİMİTED ŞİRKETİ', 'Abc Tekstil San. ve Tic. Ltd. Şti.', 'ABC TEKSTIL SAN.VE TIC.LTD.STI.'. İnsan için üçü de aynı. Bir bilgisayar için üç ayrı kayıt.

  1. Harf kuralları: Python'da 'İSTANBUL'.lower() sonucu 'istanbul' değil, i harfinin üstüne ayrı bir nokta işareti eklenmiş 9 karakterlik bir dizgedir. 'IŞIK'.lower() ise 'ışık' değil 'işik' verir.
  2. Türkçe karakter: aynı unvan bazen TEKSTİL, bazen TEKSTIL diye girilir.
  3. Yasal ek: 'SANAYİ VE TİCARET ANONİM ŞİRKETİ', 'SAN. VE TİC. A.Ş.', 'SAN.TİC.A.Ş.' aynı şeyi söyler ama karakter karakter çok farklıdır.

Gerçek sicil verisinde ölçüm

GLEIF sicilinden indirilen 9.992 gerçek Türk tüzel kişi unvanına, doğru cevabı bilinen dağınık kopyalar eklendi (toplam 13.403 satır, 4.252 gerçek tekrar çifti). Eşik 0,05.

AyarKesinlikDuyarlılıkF1
Varsayılan0,4090,2400,302
Genel yasal ek temizleme0,4110,2420,305
Türkçe mod0,5460,5420,544
Türkçe mod + yasal ek0,6620,8390,740
Türkçe mod + yasal ek + çift kuralları0,9770,7970,878

fuzzy-dedupe 0.6.0, bench/turkish_quality.py, 4 Ekim 2026. Sicil zamanla değiştiği için örneklem ve rakamlar her indirmede biraz değişir; repodaki tablo farklı bir günün indirmesidir.

Dikkat çeken satır ikincisi: genel amaçlı yasal ek temizleme Türkçe unvanlarda neredeyse hiçbir şey kazandırmıyor. Kazanç, Türkçe harf kurallarından ve Türkçe eklerin tanınmasından geliyor.

Çift kuralları ne işe yarar?

Düzenleme mesafesinin bir kör noktası var: uzun bir şablonu paylaşan iki farklı şirket. 'NEO PORTFÖY BİRİNCİ SERBEST FON' ile 'NEO PORTFÖY İKİNCİ SERBEST FON' kırk karakterde tek kelime farklı, ama iki ayrı fon. İki kural bunu kapatır: rakam ve sıra sayısı içeren kelimeler aynı olmalı, ve iki unvanın paylaşmadığı kelimeler kendi içinde de benzer olmalı. Yazım hatası geçer; bütün bir kelimenin değişmesi geçmez.

Kodla

from fuzzy_dedupe import find_duplicates

find_duplicates(["ABC TEKSTİL SANAYİ VE TİCARET LİMİTED ŞİRKETİ",
                 "Abc Tekstil San. ve Tic. Ltd. Şti.",
                 "ABC TEKSTIL SAN.VE TIC.LTD.STI."],
                threshold=0.0, strip_suffixes=True, turkish=True)
# [(0, 1, 0.0), (0, 2, 0.0), (1, 2, 0.0)]

Sonuçlar yaklaşık değil, tam: filtreler yalnızca eşleşemeyeceği kanıtlanan çiftleri atlar, kalan her çift tam karşılaştırılır. Aynı makinede 100.000 şirket adında RapidFuzz'dan 115 kat hızlı ve aynı çiftleri döndürüyor (0.6.0, 4 Ekim 2026).

Sınır

Aynı unvan her zaman aynı şirket demek değildir: farklı şehirlerde aynı adı taşıyan iki ayrı firma olabilir. Birleştirme kararı için vergi numarası gibi ikinci bir anahtar ya da insan onayı gerekir. Eşik ve yanlış pozitif maliyeti verinize göre ayarlanmalıdır.

ÜRÜNFuzzy Dedupeİsim ve kurum kayıtlarında yakın tekrar tespiti.

Diğer yazılar

ProofFrame, Great Expectations, Pandera ve Soda: hangi veri doğrulama aracı ne zaman?Dört veri kalitesi aracını dürüstçe karşılaştırıyoruz: hangisi hangi işte güçlü, ProofFrame neyi bilerek yapmıyor ve 'kontrol çalışmadı' sonucunun neden ayrı bir durum olması gerektiği.Bir yazılım kararını aylar sonra nasıl kanıtlarsınız? Tekrar oynatılabilir karar kaydı'Neden bu tedarikçi, neden bu model?' sorusuna log yerine kanıtla cevap vermek. Calybris'in karar, özet ve tekrar oynatma yaklaşımı, neyi kanıtladığı ve neyi kanıtlamadığı.