first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:26:46 +03:00
commit 2be3a313ad
55 changed files with 3609 additions and 0 deletions

View File

@@ -0,0 +1,125 @@
"""
Türkçe kökenli isimler öncelikli olarak NameVocab tablosunu doldurur.
Kullanım: python manage.py seed_name_vocab
"""
from django.core.management.base import BaseCommand
from namecreate.models import NameVocab
# -----------------------------------------------------------------------
# Türkçe kökenli isimler — en yüksek öncelik
# -----------------------------------------------------------------------
TURKCE_ERKEK = [
("Alp", 80), ("Alpay", 60), ("Alperen", 100), ("Altan", 70),
("Aydın", 90), ("Baran", 85), ("Barış", 120), ("Batuhan", 95),
("Berk", 75), ("Berkay", 80), ("Burak", 140), ("Çağan", 50),
("Çağrı", 65), ("Deniz", 110), ("Doğan", 70), ("Doruk", 55),
("Emre", 160), ("Enes", 90), ("Eren", 130), ("Erhan", 75),
("Furkan", 85), ("Görkem", 60), ("Güven", 45), ("Haluk", 50),
("İlker", 70), ("Kaan", 95), ("Kadir", 80), ("Kerem", 100),
("Koral", 45), ("Korhan", 50), ("Mert", 130), ("Oğuz", 75),
("Onur", 90), ("Orkun", 55), ("Selim", 85), ("Sercan", 70),
("Serdar", 80), ("Soner", 65), ("Tarık", 75), ("Tuna", 50),
("Tunahan", 60), ("Uğur", 85), ("Umut", 100), ("Ufuk", 55),
("Volkan", 80), ("Yiğit", 90), ("Yunus", 95), ("Zafer", 60),
]
TURKCE_KADIN = [
("Aslı", 110), ("Aylin", 100), ("Aynur", 75), ("Ayşen", 65),
("Banu", 70), ("Bahar", 90), ("Başak", 80), ("Belgin", 55),
("Bengü", 50), ("Berrak", 60), ("Burcu", 95), ("Büşra", 85),
("Cansu", 100), ("Ceren", 120), ("Çiğdem", 80), ("Deniz", 90),
("Ebru", 95), ("Elçin", 65), ("Elif", 150), ("Esra", 110),
("Ezgi", 100), ("Gizem", 90), ("Gül", 75), ("Gülşen", 55),
("Güneş", 50), ("Hande", 85), ("İlayda", 75), ("İpek", 80),
("Melike", 90), ("Meltem", 95), ("Merve", 130), ("Nilay", 80),
("Nur", 70), ("Özge", 100), ("Pınar", 90), ("Seda", 85),
("Selin", 100), ("Sibel", 80), ("Simge", 75), ("Tuğba", 85),
("Tülay", 60), ("Ülkü", 50), ("Yasemin", 110), ("Zeynep", 120),
("Zümra", 55),
]
# Türkçe soyisimler
TURKCE_SOYISIM = [
("Yılmaz", 200), ("Kaya", 180), ("Demir", 170), ("Çelik", 150),
("Şahin", 140), ("Yıldız", 130), ("Arslan", 120), ("Doğan", 115),
("Kılıç", 110), ("Aslan", 105), ("Çetin", 100), ("Bulut", 95),
("Aydın", 90), ("Özdemir", 90), ("Demirci", 85), ("Güler", 80),
("Erdoğan", 75), ("Çakır", 75), ("Polat", 70), ("Koç", 70),
("Acar", 65), ("Kurt", 65), ("Yavuz", 65), ("Ateş", 60),
("Güneş", 60), ("ık", 60), ("Karaca", 55), ("Türk", 55),
("Özkan", 55), ("Bay", 50), ("Toker", 50), ("Şimşek", 50),
("Akay", 45), ("Boz", 45), ("Deniz", 45), ("Ercan", 45),
("Güçlü", 40), ("Kaplan", 40), ("Savaş", 40), ("Turan", 40),
("Baş", 35), ("Çam", 35), ("Kara", 35), ("Taş", 35),
("Dağ", 30), ("Duman", 30), ("Gür", 30), ("Köse", 30),
("Uçar", 30), ("Yurt", 30),
]
# -----------------------------------------------------------------------
# Batı kökenli isimler — ikinci öncelik
# -----------------------------------------------------------------------
BATI_ERKEK = [
("Can", 110), ("Cem", 90), ("Cenk", 75), ("Sarp", 60),
("Alper", 70), ("Enver", 55),
]
BATI_KADIN = [
("Ece", 100), ("Derya", 85), ("Sera", 60), ("Lara", 70),
("Nisa", 80), ("Sena", 75),
]
# -----------------------------------------------------------------------
# Arapça kökenli isimler — son öncelik (küçük liste)
# -----------------------------------------------------------------------
ARAPCA_ERKEK = [
("Ahmet", 160), ("Ali", 150), ("Mehmet", 170), ("Hasan", 100),
("Hüseyin", 95), ("İbrahim", 90), ("Mustafa", 140), ("Ömer", 80),
]
ARAPCA_KADIN = [
("Fatma", 120), ("Ayşe", 130), ("Hatice", 90), ("Havva", 70),
("Meryem", 80), ("Rabia", 65),
]
def _bulk_create(entries, name_type, gender, origin):
objs = []
for name, freq in entries:
objs.append(NameVocab(
name=name,
name_type=name_type,
gender=gender,
origin=origin,
frequency=freq,
))
# ignore_conflicts: aynı kayıt varsa atla
NameVocab.objects.bulk_create(objs, ignore_conflicts=True)
return len(objs)
class Command(BaseCommand):
help = 'NameVocab tablosunu Türkçe kökenli isimler öncelikli olarak doldurur'
def handle(self, *args, **options):
total = 0
# Türkçe — birinci öncelik
total += _bulk_create(TURKCE_ERKEK, 'first', 'E', 'turkce')
total += _bulk_create(TURKCE_KADIN, 'first', 'K', 'turkce')
total += _bulk_create(TURKCE_SOYISIM, 'last', 'U', 'turkce')
# Batı — ikinci öncelik
total += _bulk_create(BATI_ERKEK, 'first', 'E', 'bati')
total += _bulk_create(BATI_KADIN, 'first', 'K', 'bati')
# Arapça — son öncelik
total += _bulk_create(ARAPCA_ERKEK, 'first', 'E', 'arapca')
total += _bulk_create(ARAPCA_KADIN, 'first', 'K', 'arapca')
self.stdout.write(self.style.SUCCESS(
f'{total} isim işlendi. '
f'Türkçe: {NameVocab.objects.filter(origin="turkce").count()}, '
f'Batı: {NameVocab.objects.filter(origin="bati").count()}, '
f'Arapça: {NameVocab.objects.filter(origin="arapca").count()}'
))