CoolFace
Datasetpublic

mmkocak/turkish-recipes-175K

Turkish Recipes 175K Türkçe yemek tarifi dataseti — 174.975 deduplike tarif kaydı. Halka açık Türkçe yemek tarifi kaynaklarından toplanmış; başlık, malzeme listesi, talimatlar, kategori, etiket, porsiyon, pişirme süreleri ve besin değerleri içerir. Türkçe büyük dil modellerinin (LLM) pretraining ve instruction-tuning'i için hazırlanmıştır. İçerik Split Satır Boyut train 153.978 ~417 MB validation 10.498 ~28 MB test 10.499 ~28 MB Toplam 174.975… See the full description on the dataset page: https://huggingface.co/datasets/mmkocak/turkish-recipes-175K.

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
0likes66downloads
Dataset Card

Turkish Recipes 175K

Türkçe yemek tarifi dataseti — 174.975 deduplike tarif kaydı. Halka açık Türkçe yemek tarifi kaynaklarından toplanmış; başlık, malzeme listesi, talimatlar, kategori, etiket, porsiyon, pişirme süreleri ve besin değerleri içerir. Türkçe büyük dil modellerinin (LLM) pretraining ve instruction-tuning'i için hazırlanmıştır.

İçerik

SplitSatırBoyut
train153.978~417 MB
validation10.498~28 MB
test10.499~28 MB
Toplam174.975~474 MB

Random shuffle ile 88/6/6 split, seed = 42.


Hızlı Başlangıç

python
from datasets import load_dataset

ds = load_dataset("mmkocak/turkish-recipes-175K")

print(ds)
# DatasetDict({
#     train: Dataset({...}),
#     validation: Dataset({...}),
#     test: Dataset({...})
# })

sample = ds["train"][0]
print(sample["title"])
print(sample["ingredients"])
print(sample["instructions"])

Schema

Her satır JSON nesnesi olarak şu alanları içerir:

AlanTipAçıklama
titlestrTarif başlığı
description`str \null`Kısa açıklama / özet
ingredientslist[str]Malzeme listesi (her satır bir malzeme)
instructionslist[str]Hazırlama adımları (her satır bir adım)
category`str \null`Tarif kategorisi (örn. "Şerbetli Tatlılar", "Çorbalar")
tagslist[str]Etiketler (örn. "Fırın", "Hamur işi")
servings`str \null`Porsiyon sayısı
prep_time`str \null`Hazırlık süresi (ISO 8601 duration, örn. "PT50M")
cook_time`str \null`Pişirme süresi
total_time`str \null`Toplam süre
nutrition`dict[str, str] \null`Besin değerleri (kalori, protein, yağ, karbonhidrat, ...)
raw_text`str \null`Orijinal birleşik metin (bazı kayıtlarda mevcut)
sourcestrSabit: "tr_recipes"

Örnek satır

json
{
  "title": "El Açması Fıstıklı Şöbiyet Tatlısı",
  "description": "Binlerce kişinin defterindeki bu tarifin tüm sırları...",
  "ingredients": [
    "yarım su bardağı yoğurt",
    "2 yumurta",
    "1 çay bardağı sıvı yağ",
    "yarım paket margarin",
    "yarım çay kaşığı tuz",
    "1 çay kaşığı sirke",
    "yaklaşık 3.5 su bardağı un"
  ],
  "instructions": [
    "Önce şerbeti için su ve şekeri tencereye alıp karıştıralım, kaynayınca birkaç dakika kaynatalım.",
    "Hamur için tüm malzemeleri yoğurma kabına alıp orta yumuşaklıkta bir hamur yoğuralım.",
    "Hamuru eşit parçalara bölelim..."
  ],
  "category": "Şerbetli Tatlılar",
  "tags": ["Fırın", "Hamur işi", "Tatlı"],
  "servings": "11",
  "prep_time": "PT50M",
  "cook_time": "PT50M",
  "total_time": "PT100M",
  "nutrition": {
    "calories": "97",
    "Karbonhidrat(g)": "12.1",
    "Protein(g)": "1.4",
    "Yağ(g)": "4.6"
  },
  "raw_text": "El Açması Fıstıklı Şöbiyet Tatlısı\n...",
  "source": "tr_recipes"
}

Veri Hazırlığı

Dedup

Çift kayıt eleme şu kompozit anahtar üzerinden yapılır:

Normalize edilmiş başlık + ilk 3 malzeme + ilk talimat cümlesi → MD5 hash.

Bu yöntem, aynı başlığa sahip farklı tarifleri (örn. "Mercimek Çorbası" başlığıyla onlarca farklı tarif) korurken kelimesi kelimesine tekrarları eler. Sadece başlık üzerinden yapılan dedup'a göre ~%34 daha fazla tarifi korur.

Filtreler

  • —Başlığı, en az 2 malzemesi ve en az 2 talimatı olmayan kayıtlar elenir.
  • —Yazar / yayın tarihi / URL gibi kişisel veya kaynak-spesifik meta veri çıktıda yer almaz.

Kullanım Örnekleri

1) Pretraining için düz metin

python
def to_pretrain_text(row):
    parts = [f"# {row['title']}"]
    if row.get("description"):
        parts.append(row["description"])
    parts.append("## Malzemeler\n" + "\n".join(f"- {x}" for x in row["ingredients"]))
    parts.append("## Hazırlanışı\n" + "\n".join(f"{i+1}. {s}" for i, s in enumerate(row["instructions"])))
    return "\n\n".join(parts)

text_ds = ds["train"].map(lambda r: {"text": to_pretrain_text(r)})

2) ChatML / Instruction-tuning formatı

python
SYSTEM = "Sen deneyimli bir Türk şefisin. Verilen tarifi açık ve sade biçimde aktar."

def to_chatml(row):
    user = f"{row['title']} tarifi verir misin?"
    assistant = "## Malzemeler\n" + "\n".join(f"- {x}" for x in row["ingredients"])
    assistant += "\n\n## Hazırlanışı\n" + "\n".join(f"{i+1}. {s}" for i, s in enumerate(row["instructions"]))
    return {
        "messages": [
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": user},
            {"role": "assistant", "content": assistant},
        ]
    }

sft_ds = ds["train"].map(to_chatml, remove_columns=ds["train"].column_names)

Repo'daki `scripts/to_chatml.py` tam çalışan bir örnek sunar.

3) Filtreleme

python
# Sadece tatlı tarifleri
desserts = ds["train"].filter(lambda x: x.get("category") and "Tatlı" in (x["category"] or ""))

# Beslenme bilgisi olan tarifler
nutritional = ds["train"].filter(lambda x: bool(x.get("nutrition")))

Veri Kaynağı

Bu dataset, halka açık Türkçe yemek tarifi kaynaklarından toplanmış tariflerin temizlenmiş ve deduplike edilmiş bir derlemesidir. Tariflerin kaynak siteleri / URL'leri / yazarları çıktıda yer almaz — yalnızca tarifin yapısal içeriği (başlık, malzeme, talimat, kategori) saklanır.

Sınırlamalar

  • —Domain: Yemek/tarif domain'ine özel. Genel amaçlı Türkçe corpus değildir.
  • —Format tutarsızlığı: Bazı kayıtlarda nutrition, prep_time gibi alanlar null olabilir.
  • —`raw_text`: Kaynak metnin birleşik halidir; bazı kayıtlarda gürültülü olabilir, kullanım opsiyoneldir.
  • —Gerçeklik kontrolü: Beslenme değerleri kaynak tarif sayfalarından alınmıştır; tıbbi/diyetetik tavsiye olarak kullanılmamalıdır.

Lisans

Bu derleme Apache License 2.0 altında yayınlanmıştır — bkz. LICENSE.

Akademik ve ticari kullanım serbesttir. Atıf önerilir.

Atıf

bibtex
@dataset{turkish_recipes_175k_2026,
  title  = {Turkish Recipes 175K},
  author = {Muhammed Locak},
  year   = {2026},
  url    = {https://huggingface.co/datasets/mmkocak/turkish-recipes-175K},
  note   = {174,975 deduplicated Turkish recipes with ingredients, instructions, and nutrition data}
}

İletişim

  • —HF profili: @mmkocak
  • —E-posta: muhammetlocak774@gmail.com

English Summary

A Turkish-language recipe dataset with 174,975 deduplicated recipes sourced from publicly available Turkish cooking content. Each record contains a title, description, ingredients list, step-by-step instructions, category, tags, servings, prep/cook/total time, and nutrition data. Suitable for pretraining or instruction-tuning Turkish LLMs in the cooking/food domain. Random 88/6/6 train/validation/test split (seed 42). Released under Apache-2.0.