Türkiye'nin kamuya açık mahkeme kararlarından derlenmiş, bilinen en büyük Türkçe hukuk metni veri seti. 11.045.085 karar, 31.5 milyar karakter düz metin (5.52 GB Parquet), 1962'den 2026'ya. Yargıtay, Danıştay, Anayasa Mahkemesi ve UYAP Emsal üzerinden yerel/istinaf mahkemeleri.
| Kaynak | Karar sayısı | Yıl aralığı | Metin | Dosya |
|---|---|---|---|---|
Yargıtay (yargitay) | 9.820.145 | 1997–2026 | 19.5 milyar karakter | 17 |
Danıştay (danistay) | 386.608 | 1965–2026 | 3.3 milyar karakter | 2 |
UYAP Emsal (emsal) | 815.702 | 2017–2026 | 8.1 milyar karakter | 9 |
AYM Norm Denetimi (aym_norm) | 5.563 | 1962–2026 | 127 milyon karakter | 1 |
AYM Bireysel Başvuru (aym_bb) | 17.067 | 2012–2026 | 374 milyon karakter | 1 |
| Toplam | 11.045.085 | 1962–2026 | 31.5 milyar karakter | 30 |
Kaynakların kendi arama sistemleri toplam 11.125.621 künye bildiriyor. Bunun 11.124.305 tanesi indirilebildi (%99.99); erişilemeyen 1.226 belge (%0.011), kaynak sistemin iki tur yeniden denemeye rağmen tutarlı biçimde boş döndürdüğü kayıtlardır. İndirilenlerden 79.220 kayıt çöp yanıt ya da mükerrer olduğu için ayıklandı (aşağıdaki Temizlik bölümü); geriye 11.045.085 tekil karar kaldı.
from datasets import load_dataset
# Tamamı (streaming önerilir — 5.52 GB indirme)
ds = load_dataset("hamzabagirsakci/turkish-court-decisions", split="train", streaming=True)
# Tek kaynak
yargitay = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")
# Tek dosya (hızlı deneme)
import pyarrow.parquet as pq
tbl = pq.read_table("data/aym_norm/train-00000-of-00001.parquet")
| Alan | Tip | Açıklama |
|---|---|---|
id | string | {kaynak}:{document_id} — veri seti genelinde tekil |
source | string | yargitay · danistay · emsal · aym_norm · aym_bb |
document_id | string | Kaynak sistemdeki kimlik (yeniden çekim için) |
court | string | Daire / bölüm / mahkeme adı |
esas_no | string | Esas numarası (2016/57111) |
karar_no | string | Karar numarası (2023/6863) |
karar_tarihi | string | ISO YYYY-MM-DD (kaynaklar arası normalize edildi) |
year, month | int16 / int8 | Karar dönemi (bölümleme anahtarı) |
text | string | Kararın tam metni |
text_len | int32 | Karakter sayısı |
masked_count | int16 | Metinde [TCKN] · [IBAN] · [KART] · [TELEFON] · [EPOSTA] etiketiyle maskelenmiş tanımlayıcı sayısı |
raw_sha256 | string | Kaynak HTML'in hash'i — tekilleştirme / doğrulama için |
mevzuat_atif | list[string] | Kararın dayandığı mevzuat, kanunNo/maddeNo (5237/62) |
mevzuat_konu | list[string] | Yargıtay'ın kendi konu indeksi — aşağıdaki uyarıya bakın |
ds = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")
tck62 = ds.filter(lambda r: "5237/62" in r["mevzuat_atif"])
mevzuat_atif iki yoldan üretilir ve ikisi de tahmin içermez:
5237/62.| Kısaltma | → Kanun | Ölçülen kesinlik | Örnek |
|---|---|---|---|
HMK | 6100 | %99,91 | 22.816 |
CMUK | 1412 | %99,74 | 53.197 |
HUMK | 1086 | %99,73 | 6.627 |
CMK | 5271 | %99,70 | 58.410 |
TBK | 6098 | %99,54 | 1.093 |
TMK | 4721 | %99,46 | 1.860 |
Çözülmeyenler. TCK (→5237 %85,6), BK (→818 %93,6), TTK (→6102 %63,4) ve
TCY (→5237 %59,5) eşiği (%99) geçemediği için atıf üretilmez. Sebep hukukun
kendisi: suç veya olay tarihindeki kanun uygulandığından, 2020 tarihli bir karar
pekâlâ mülga 765 sayılı TCK'ya dayanabiliyor. Karar tarihine bakarak tahmin etmek
CMK ailesinde %61,9'a varan oranda yanılırdı. Bu atıflar metinde duruyor; sadece
yapısal alana taşınmıyor.
mevzuat_konu neden ayrı. Eski Yargıtay kararlarının başında makine üretimi
bir künye satırı var (765 S. TÜRK CEZA KANUNU [ Madde 59 ]). Bu satır eski
kararları güncel mevzuata eşliyor: 2000 tarihli bir kararın künyesinde 2002'de
yürürlüğe giren 4721 sayılı Medeni Kanun yazarken, kararın gövdesi çıplak
"MK.nun 931. maddesi" diyor. Yani künye kararın uyguladığı kanunu değil, bugünkü
karşılığını gösteriyor — atıf değil, konu indeksidir. Bu yüzden ayrı sütunda ve
yalnızca eski kararlarda dolu.
Mahkeme kararları Türkiye'de telif korumasında değildir. FSEK m.31, resmen yayımlanan kazai kararların çoğaltılmasını, yayılmasını ve işlenmesini açıkça serbest bırakır. Bu, Anayasa m.141'deki yargılamanın aleniyeti ilkesi ve m.26–28'deki ifade/bilim hürriyeti ile birlikte okunduğunda, kararların tam metin olarak herkes tarafından yayınlanabileceği anlamına gelir.
Ayrıntılı tartışma için: Kemal Gözler, Mahkeme Kararlarının Yayınlanması Sorunu, anayasa.gen.tr.
Veri seti CC0-1.0 ile sunulur: kararların kendisi zaten kamu malıdır, derleme üzerindeki haklardan da feragat edilmiştir.
Kararlar ilgili kurumların kamuya açık arama sistemlerinden alındı (Yargıtay Karar Arama, Danıştay Emsal Karar, UYAP Emsal, AYM Kararlar Bilgi Bankası). Toplama, hedef sistemleri yormamak için oran sınırlı ve AIMD geri çekilmeli bir tarayıcıyla, ay bazlı pencerelere bölünerek yapıldı; her pencere tamamlanana kadar uzlaştırıldı (reconcile), böylece sessiz veri kaybı önlendi.
Ham HTML'den metne dönüşüm kaynak-farkındadır: Danıştay kararları sayfa şablonunun içinde HTML-escape'li gömülü olduğundan ayrı çözülür, AYM kararları Word'den export edilmiş yapıdadır. Blok yapısı (paragraflar) korunur, sayfa iskeleti atılır.
Ham toplama 11.124.305 kayıt üretti; yayınlanan 11.045.085. Aradaki fark:
| Ne | Kaç | Neden |
|---|---|---|
| Çöp yanıt | 6.779 | Kaynak sistem, karar yerine HTTP 200 ile bot-kontrol ekranı veya hata sayfası döndürmüş. Tamamı Danıştay'da; sabit metinli, ~120 karakterlik sayfalar. |
| Mükerrer | 72.441 | Aynı karar farklı document_id ile birden çok indekslenmiş. (kaynak, daire, esas_no, karar_no) anahtarında tekilleştirildi; kopyalardan en uzun metinli olan tutuldu (bazı kopyalar yarım çekilmiş). |
Bu ayıklama olmadan veri setinde ~6.779 adet "karar" aslında hata sayfası olurdu. Kısa kararlar çöp değildir ve korunmuştur.
CC0 olduğu için atıf zorunlu değildir, ama yararlı olursa memnun oluruz:
@misc{turk_ictihat_korpusu,
title = {Türk İçtihat Korpusu: 11.045.085 Türk Mahkeme Kararı},
author = {Bağırsakçı, Hamza},
year = {2026},
url = {https://huggingface.co/datasets/hamzabagirsakci/turkish-court-decisions},
note = {CC0-1.0}
}
Bu veri seti araştırma ve geliştirme içindir. Hukuki tavsiye değildir ve resmî kaynak yerine geçmez. Bir karara dayanmadan önce ilgili kurumun kendi sisteminden doğrulayın. Metinler kaynağından alındığı hâliyle sunulur; doğruluk veya güncellik garantisi verilmez.
5 commits
Türkiye'nin kamuya açık mahkeme kararlarından derlenmiş, bilinen en büyük Türkçe hukuk metni veri seti. 11.045.085 karar, 31.5 milyar karakter düz metin (5.52 GB Parquet), 1962'den 2026'ya. Yargıtay, Danıştay, Anayasa Mahkemesi ve UYAP Emsal üzerinden yerel/istinaf mahkemeleri.
| Kaynak | Karar sayısı | Yıl aralığı | Metin | Dosya |
|---|---|---|---|---|
Yargıtay (yargitay) | 9.820.145 | 1997–2026 | 19.5 milyar karakter | 17 |
Danıştay (danistay) | 386.608 | 1965–2026 | 3.3 milyar karakter | 2 |
UYAP Emsal (emsal) | 815.702 | 2017–2026 | 8.1 milyar karakter | 9 |
AYM Norm Denetimi (aym_norm) | 5.563 | 1962–2026 | 127 milyon karakter | 1 |
AYM Bireysel Başvuru (aym_bb) | 17.067 | 2012–2026 | 374 milyon karakter | 1 |
| Toplam | 11.045.085 | 1962–2026 | 31.5 milyar karakter | 30 |
Kaynakların kendi arama sistemleri toplam 11.125.621 künye bildiriyor. Bunun 11.124.305 tanesi indirilebildi (%99.99); erişilemeyen 1.226 belge (%0.011), kaynak sistemin iki tur yeniden denemeye rağmen tutarlı biçimde boş döndürdüğü kayıtlardır. İndirilenlerden 79.220 kayıt çöp yanıt ya da mükerrer olduğu için ayıklandı (aşağıdaki Temizlik bölümü); geriye 11.045.085 tekil karar kaldı.
from datasets import load_dataset
# Tamamı (streaming önerilir — 5.52 GB indirme)
ds = load_dataset("hamzabagirsakci/turkish-court-decisions", split="train", streaming=True)
# Tek kaynak
yargitay = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")
# Tek dosya (hızlı deneme)
import pyarrow.parquet as pq
tbl = pq.read_table("data/aym_norm/train-00000-of-00001.parquet")
| Alan | Tip | Açıklama |
|---|---|---|
id | string | {kaynak}:{document_id} — veri seti genelinde tekil |
source | string | yargitay · danistay · emsal · aym_norm · aym_bb |
document_id | string | Kaynak sistemdeki kimlik (yeniden çekim için) |
court | string | Daire / bölüm / mahkeme adı |
esas_no | string | Esas numarası (2016/57111) |
karar_no | string | Karar numarası (2023/6863) |
karar_tarihi | string | ISO YYYY-MM-DD (kaynaklar arası normalize edildi) |
year, month | int16 / int8 | Karar dönemi (bölümleme anahtarı) |
text | string | Kararın tam metni |
text_len | int32 | Karakter sayısı |
masked_count | int16 | Metinde [TCKN] · [IBAN] · [KART] · [TELEFON] · [EPOSTA] etiketiyle maskelenmiş tanımlayıcı sayısı |
raw_sha256 | string | Kaynak HTML'in hash'i — tekilleştirme / doğrulama için |
mevzuat_atif | list[string] | Kararın dayandığı mevzuat, kanunNo/maddeNo (5237/62) |
mevzuat_konu | list[string] | Yargıtay'ın kendi konu indeksi — aşağıdaki uyarıya bakın |
ds = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")
tck62 = ds.filter(lambda r: "5237/62" in r["mevzuat_atif"])
mevzuat_atif iki yoldan üretilir ve ikisi de tahmin içermez:
5237/62.| Kısaltma | → Kanun | Ölçülen kesinlik | Örnek |
|---|---|---|---|
HMK | 6100 | %99,91 | 22.816 |
CMUK | 1412 | %99,74 | 53.197 |
HUMK | 1086 | %99,73 | 6.627 |
CMK | 5271 | %99,70 | 58.410 |
TBK | 6098 | %99,54 | 1.093 |
TMK | 4721 | %99,46 | 1.860 |
Çözülmeyenler. TCK (→5237 %85,6), BK (→818 %93,6), TTK (→6102 %63,4) ve
TCY (→5237 %59,5) eşiği (%99) geçemediği için atıf üretilmez. Sebep hukukun
kendisi: suç veya olay tarihindeki kanun uygulandığından, 2020 tarihli bir karar
pekâlâ mülga 765 sayılı TCK'ya dayanabiliyor. Karar tarihine bakarak tahmin etmek
CMK ailesinde %61,9'a varan oranda yanılırdı. Bu atıflar metinde duruyor; sadece
yapısal alana taşınmıyor.
mevzuat_konu neden ayrı. Eski Yargıtay kararlarının başında makine üretimi
bir künye satırı var (765 S. TÜRK CEZA KANUNU [ Madde 59 ]). Bu satır eski
kararları güncel mevzuata eşliyor: 2000 tarihli bir kararın künyesinde 2002'de
yürürlüğe giren 4721 sayılı Medeni Kanun yazarken, kararın gövdesi çıplak
"MK.nun 931. maddesi" diyor. Yani künye kararın uyguladığı kanunu değil, bugünkü
karşılığını gösteriyor — atıf değil, konu indeksidir. Bu yüzden ayrı sütunda ve
yalnızca eski kararlarda dolu.
Mahkeme kararları Türkiye'de telif korumasında değildir. FSEK m.31, resmen yayımlanan kazai kararların çoğaltılmasını, yayılmasını ve işlenmesini açıkça serbest bırakır. Bu, Anayasa m.141'deki yargılamanın aleniyeti ilkesi ve m.26–28'deki ifade/bilim hürriyeti ile birlikte okunduğunda, kararların tam metin olarak herkes tarafından yayınlanabileceği anlamına gelir.
Ayrıntılı tartışma için: Kemal Gözler, Mahkeme Kararlarının Yayınlanması Sorunu, anayasa.gen.tr.
Veri seti CC0-1.0 ile sunulur: kararların kendisi zaten kamu malıdır, derleme üzerindeki haklardan da feragat edilmiştir.
Kararlar ilgili kurumların kamuya açık arama sistemlerinden alındı (Yargıtay Karar Arama, Danıştay Emsal Karar, UYAP Emsal, AYM Kararlar Bilgi Bankası). Toplama, hedef sistemleri yormamak için oran sınırlı ve AIMD geri çekilmeli bir tarayıcıyla, ay bazlı pencerelere bölünerek yapıldı; her pencere tamamlanana kadar uzlaştırıldı (reconcile), böylece sessiz veri kaybı önlendi.
Ham HTML'den metne dönüşüm kaynak-farkındadır: Danıştay kararları sayfa şablonunun içinde HTML-escape'li gömülü olduğundan ayrı çözülür, AYM kararları Word'den export edilmiş yapıdadır. Blok yapısı (paragraflar) korunur, sayfa iskeleti atılır.
Ham toplama 11.124.305 kayıt üretti; yayınlanan 11.045.085. Aradaki fark:
| Ne | Kaç | Neden |
|---|---|---|
| Çöp yanıt | 6.779 | Kaynak sistem, karar yerine HTTP 200 ile bot-kontrol ekranı veya hata sayfası döndürmüş. Tamamı Danıştay'da; sabit metinli, ~120 karakterlik sayfalar. |
| Mükerrer | 72.441 | Aynı karar farklı document_id ile birden çok indekslenmiş. (kaynak, daire, esas_no, karar_no) anahtarında tekilleştirildi; kopyalardan en uzun metinli olan tutuldu (bazı kopyalar yarım çekilmiş). |
Bu ayıklama olmadan veri setinde ~6.779 adet "karar" aslında hata sayfası olurdu. Kısa kararlar çöp değildir ve korunmuştur.
CC0 olduğu için atıf zorunlu değildir, ama yararlı olursa memnun oluruz:
@misc{turk_ictihat_korpusu,
title = {Türk İçtihat Korpusu: 11.045.085 Türk Mahkeme Kararı},
author = {Bağırsakçı, Hamza},
year = {2026},
url = {https://huggingface.co/datasets/hamzabagirsakci/turkish-court-decisions},
note = {CC0-1.0}
}
Bu veri seti araştırma ve geliştirme içindir. Hukuki tavsiye değildir ve resmî kaynak yerine geçmez. Bir karara dayanmadan önce ilgili kurumun kendi sisteminden doğrulayın. Metinler kaynağından alındığı hâliyle sunulur; doğruluk veya güncellik garantisi verilmez.
5 commits