Skip to main content

turkce-adres

English

Türkçe adresler için internetsiz, ek paket gerektirmeyen bir Python kütüphanesi ve komut satırı aracı:

  • Ayrıştırır: dağınık yazılmış adresi il, ilçe, mahalle/köy, cadde/sokak/bulvar/çıkmaz/meydan, kapı no, blok, kat, daire, bina, posta kodu ve "Migros karşısı" gibi tarif ifadelerine ayırır.
  • Düzeltir: BÜYÜK ASCII yazımı Türkçe harflerine kavuşturur (CAFERAGA → Caferağa, BUYUKDERE → Büyükdere), il ve ilçe adlarındaki yazım hatalarını düzeltir (Istnbul → İstanbul), standart (kargo) ya da resmî yazıma çevirir.
  • Doğrular: 66.687 mahalle, köy ve semtlik sözlükle mahallenin o ilçede olup olmadığına bakar; il ya da ilçe yazılmamışsa mahalleden ya da posta kodundan bulur.
  • Konum verir (internetsiz): adresin yaklaşık koordinatını sokak, mahalle, ilçe ya da il düzeyinde döndürür. Hiçbir servise istek atmaz.
  • Eşleştirir: iki adresin aynı yeri gösterip göstermediğini söyler; CSV'de tekrarlanan kayıtları gruplar.
  • KVKK için genelleştirir: paylaşmadan önce kapı no, daire, posta kodu gibi ayrıntıları atıp adresi mahalle, ilçe ya da il düzeyine indirir.
  • Teslimat denetimi: kargo için eksik ya da çelişkili öğeleri listeler (kapı no yok, ilçe bu ile ait değil...).
  • İki dil: alan adları, notlar ve komut satırı Türkçe ya da İngilizce.
pip install turkce-adres

Kullanım

from turkce_adres import ayristir, bicimle, konum, benzerlik, genellestir, eksikler

a = ayristir("ISTANBUL BESIKTAS LEVENT MAH. BUYUKDERE CAD NO 185 D 4")
a["il"], a["ilce"], a["mahalle"], a["yol"], a["no"], a["ic_kapi"]
# ('İstanbul', 'Beşiktaş', 'Levent', 'Büyükdere', '185', '4')

bicimle(a)                 # 'Levent Mah. Büyükdere Cad. No:185 D:4, Beşiktaş/İstanbul'
bicimle(a, "resmi")        # 'Levent Mahallesi Büyükdere Caddesi Dış Kapı No: 185 İç Kapı No: 4, Beşiktaş/İSTANBUL'

konum(a)                   # {'enlem': ..., 'boylam': ..., 'duzey': 'sokak', 'kaynak': 'OpenStreetMap (ODbL)'}

benzerlik("CAFERAGA MH MODA CD NO 12 KADIKOY ISTANBUL",
          "Caferağa Mahallesi, Moda Caddesi No:12, Kadıköy/İstanbul")      # 1.0
benzerlik("Moda Cad. No:12 Kadıköy", "Moda Cad. No:14 Kadıköy")             # 0.6 (başka bina)

genellestir("Caferağa Mah. Moda Cad. No:12 D:3 Kadıköy/İstanbul 34710")["metin"]
# 'Caferağa Mah., Kadıköy/İstanbul'

eksikler("Moda Cad. Kadıköy")
# ['mahalle ya da köy yok', 'dış kapı numarası yok', 'posta kodu yok (önerilir)']

Her sonuçta ayrıca guven (0-1) ve notlar vardır: ne düzeltildi, il nereden bulundu ("il ilçeden bulundu", "yazım düzeltildi: Istnbul -> İstanbul"). duzelt=False verilirse sözcükler yazıldığı gibi kalır. İngilizce alan adları için parse(metin) ya da ayristir(metin, dil="en").

Komut satırı

# tek adres
turkce-adres "kızılay meydanı ziya gökalp cd 12 çankaya ankara" --bicim --konum

# CSV: adres sütununun yanına alanları, standart yazımı, konumu, eksikleri ve tekrar gruplarını ekler
turkce-adres musteriler.csv --sutun adres --bicim --konum --eksik --tekil -o musteriler_ayrik.csv

# KVKK: yalnız mahalle düzeyine kadar yaz
turkce-adres musteriler.csv --sutun adres --genellestir mahalle -o paylasim.csv

# İngilizce sütun adları ve mesajlar
turkce-adres customers.csv --column address --lang en --geocode -o out.csv

Excel'den "CSV UTF-8" olarak kaydedilen dosyalar doğrudan okunur; çıktı Excel'in Türkçe karakterleri doğru açacağı biçimde yazılır. Dosyanızda il, no gibi aynı adlı bir sütun varsa hiçbir sütun ezilmez, yeni sütunlar adres_ ön ekiyle yazılır.

Alanlar

Türkçe English Örnek
il / ilce province / district İstanbul / Kadıköy
mahalle / koy neighbourhood / village Caferağa / Yeşilyurt
yol, yol_turu street, street_type Moda, cadde (sokak, cadde, bulvar, cikmaz, meydan, yol)
ust_yol parent_street "Kızılay Meydanı Ziya Gökalp Cd." içindeki Kızılay Meydanı
no, ic_kapi number, unit 12/3 → no 12/3, iç kapı 3
kat, blok, bina floor, block, building Zemin, B, Levent Plaza
posta_kodu postcode 34710
tarif landmark Migros karşısı
kalan unparsed ayrılamayan sözcükler
guven, notlar confidence, notes 0,95, ["il ilçeden bulundu"]

Ölçüm

Üç sette ölçüldü. Karşılaştırma büyük/küçük harf ve Türkçe karakter farkını yok sayar. "Tüm alanlar doğru", adresin etiketlenmiş bütün alanlarının birlikte doğru olduğu adres oranıdır.

Set Nasıl üretildi Tüm alanlar doğru
bench/sinama.jsonl (6.000) OpenStreetMap'teki Türkiye adreslerinden şablonla; geliştirme sırasında hiç bakılmadı %99,5 (5.969 / 6.000)
bench/gelistirme.jsonl (6.000) Aynı yöntem; kurallar bu sette düzeltildi %99,5 (5.973 / 6.000)
bench/zor.tsv (58) Elle yazılmış ve elle etiketlenmiş dağınık adresler (etiketli yazım, yazım hatası, il yazılmadan ilçe, site/blok, köy, çıkmaz, tarif) %100 (58 / 58), aşağıdaki nota bakın

Yeniden ölçmek için: python bench/degerlendir.py sinama ve python bench/zor_degerlendir.py.

Sınırlar, dürüstçe:

  • İlk iki set şablonla üretildi. Üçüncü seti bu projeyi geliştiren kişi yazdı ve bazı kurallar o sete bakılarak düzeltildi; bağımsız bir ölçüm değildir. Gerçek kullanıcı yazımında sonuç daha düşük olur. Yanlış ayrılan adres örnekleri (kişisel veri içermeden) çok değerli.
  • Mahalle sözlüğü, konum ve yazım düzeltmesi OpenStreetMap'te ne varsa ona dayanır. OSM'de olmayan mahalle doğrulanamaz; sokak düzeyinde konum yalnız OSM'de adresi girilmiş sokaklarda vardır (14.777 sokak). Konum yaklaşıktır: mahalle/köy için OSM'deki merkez noktası, ilçe ve il için mahalle merkezlerinin ortancası.
  • Mahalle adları zamanla değişir, birleşir. Sözlük Kasım 2026 tarihli OSM verisidir; scripts/ altındaki betiklerle yenilenebilir.
  • Posta kodundan ilçe tablosu yalnız OSM'deki adres etiketlerinden türetildi (792 posta kodu); PTT listesi kullanılmadı.
  • genellestir bir genelleştirmedir, tek başına anonimleştirme sayılmaz: az nüfuslu bir mahalle ya da başka verilerle birleşince kişi yine belirlenebilir.
  • Resmî adres kaydıyla (UAVT) doğrulama yapmaz; o veri herkese açık değildir.

Verinin yeniden üretilmesi

pip install requests
python scripts/osm_cek.py                         # il il adresler ve yer adları (Overpass API, ~125 MB, ham/)
python scripts/osm_mahalle_cek.py                 # her ilçenin mahalle ve köyleri, merkez koordinatlarıyla
python scripts/hazirla.py --ad gelistirme --atla 0
python scripts/hazirla.py --ad sinama --atla 6000
python scripts/sozluk_kur.py --ham ham            # mahalle, sokak, posta kodu ve yazım sözlükleri

Ad hakkında

Bu proje GitHub'da önce tr-adres adıyla açıldı. PyPI'daki tr-adres paketi başka bir geliştiricinin bağımsız projesidir; karışmaması için bu paket turkce-adres adıyla yayımlanır (modül turkce_adres, komut turkce-adres).

Lisans

  • Kod: MIT.
  • src/turkce_adres/veri/ altındaki sözlükler ve bench/*.jsonl sınama setleri OpenStreetMap verisinden türetilmiştir, © OpenStreetMap katkıcıları, ODbL 1.0.

Metadata

Release files for turkce-adres 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for turkce-adres 0.2.0
File Size Uploaded Provenance Actions
turkce_adres-0.2.0.tar.gz 1.2 MB With provenance Details for turkce_adres-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for turkce-adres 0.2.0
File Interpreter ABI Platform Actions
turkce_adres-0.2.0-py3-none-any.whl Python 3 none any Details for turkce_adres-0.2.0-py3-none-any.whl

Total release size: 2.4 MB

Release files / turkce_adres-0.2.0.tar.gz

Download URL turkce_adres-0.2.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
5664d9b220d9d91739437bcc355b775f88e0e21fba422a8bdc74477610ad38be
BLAKE2b-256 checksum
How to use checksums
e86ff4e5622fb1f8a463ad0fee807ddf7acfae00c372ce09b4cb3d6cd290f2f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.

Transparency log

Release files / turkce_adres-0.2.0-py3-none-any.whl

Download URL turkce_adres-0.2.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2446386276129da9ce95abd064242521eb0545bbd8249fd813fb09f735f037ed
BLAKE2b-256 checksum
How to use checksums
24bb9e30a3b95168b05fde5e6d6bd4e19ab22d1575958093c8d56ccc9539c008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.

Transparency log

Security for turkce-adres 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for turkce_adres-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page