Not: Bu tokenizer orijinal olarak kaanilker tarafından geliştirilmiş olup, VeriPazarı tarafından Türk AI ekosistemi için arşivlenmiştir.

🔗 Orijinal Kaynak: kaanilker/mini-turkish-tokenizer 🔗 Derleyen Platform: VeriPazarı

Mini Turkish Tokenizer 🔤

Türkçe dil modelleri için optimize edilmiş, kompakt BPE tokenizer


📌 Özet

Mini Turkish Tokenizer, Türkçe NLP görevleri için özel olarak tasarlanmış bir BPE (Byte Pair Encoding) tokenizer'dır. CulturaX Turkish veri setinin 735.991 dokümanından eğitilerek, Türkçe metinleri verimli bir şekilde token'lara (parçacıklara) dönüştürür.

Temel Özellikler

  • Vocab Size (Kelime Dağarcığı): 5.610 token (kompakt ve verimli)
  • Dil: Türkçe (🇹🇷)
  • Algoritma: BPE (Byte Pair Encoding)
  • Eğitim Verisi: CulturaX Turkish (735.991 dokümandan)
  • Format: HuggingFace PreTrainedTokenizerFast
  • Lisans: GNU General Public License v2.0 (Açık kaynak)

🚀 Hızlı Başlangıç

Kurulum

pip install transformers

Temel Kullanım

from transformers import AutoTokenizer

# Tokenizer'ı yükle
tokenizer = AutoTokenizer.from_pretrained("kaanilker/mini-turkish-tokenizer")

# Metni tokenize et
text = "Merhaba, ben yapay zekayım!"
tokens = tokenizer.encode(text)
print(tokens)
# Output: [59, 83, 96, 86, 79, 80, ...]

Decode Etme (Geri Çevirme)

# Token'ları metne geri çevir
decoded = tokenizer.decode(tokens)
print(decoded)
# Output: "Merhaba, ben yapay zekayım!"

Batch (Toplu) İşleme

texts = [
    "Merhaba dünya",
    "Türkçe NLP",
    "Yapay zeka harika"
]

# Batch tokenize
encoded = tokenizer(
    texts,
    padding=True,
    truncation=True,
    max_length=100,
    return_tensors="pt"
)
print(encoded['input_ids'].shape)
# Output: torch.Size([3, 100])

📊 Teknik Detaylar

Özel Token'lar (Special Tokens)

Token ID Açıklama
<pad> 0 Padding (doldurma)
<unk> 1 Unknown (bilinmeyen)
<bos> 2 Beginning of Sequence (başlangıç)
<eos> 3 End of Sequence (bitiş)

Eğitim Konfigürasyonu

vocab_size = 5610
min_frequency = 2
algorithm = "BPE"
pre_tokenizer = "Whitespace + Punctuation"
training_data = "CulturaX Turkish (735,991 documents)"
train_test_split = "90/10"

Tokenizasyon Özellikleri

  • Ortalama Token Sayısı: Cümle başına 8-12 token
  • Coverage (CulturaX Kapsamı): ~%98.5
  • Encoding Hızı: ~10.000 token/saniye
  • Bellek Ayak İzi (Footprint): 5-10 MB

💻 İleri Kullanım

Attention Mask İle

from transformers import AutoTokenizer
import torch

tokenizer = AutoTokenizer.from_pretrained("kaanilker/mini-turkish-tokenizer")
text = "Kısa"

encoded = tokenizer(
    text,
    padding="max_length",
    max_length=10,
    return_tensors="pt"
)

print(encoded['input_ids'])
# [1234, 0, 0, 0, 0, 0, 0, 0, 0, 0]

print(encoded['attention_mask'])
# [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Fine-tuning İçin

from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("kaanilker/mini-turkish-tokenizer")
model = AutoModelForSequenceClassification.from_pretrained("dbmdz/bert-base-turkish-cased")

# Türkçe metinleri tokenize et
inputs = tokenizer(
    ["Bu çok güzel!", "Berbat!"],
    truncation=True,
    max_length=512,
    return_tensors="pt"
)

outputs = model(**inputs)

🎯 Kullanım Senaryoları

1. Türkçe Metin Sınıflandırması

from transformers import pipeline

classifier = pipeline(
    "text-classification",
    model="dbmdz/bert-base-turkish-cased",
    tokenizer=tokenizer
)
result = classifier("Bu ürün harika!")
print(result)

2. Türkçe Metin Üretimi

from transformers import pipeline

generator = pipeline(
    "text-generation",
    model="your-turkish-llm",
    tokenizer=tokenizer
)
generated = generator("Türkiye'nin başkenti", max_length=50)
print(generated)

📋 Teknik Özellikler

Vocab Dağılımı

Toplam Tokens: 5.610
Kategori Dağılımı:
├── Türkçe Kelimeler: ~3.366 (%60)
├── Subword Parçaları: ~2.200 (%39)
├── Special Tokens: 4 (%1)
└── Diğer: ~40 (%1)

Eğitim Verileri

  • Veri Seti: CulturaX Turkish
  • Toplam Doküman: 735.991
  • Toplam Token: 500M
  • Train/Val Split: 90/10
  • Min Frequency: 2 (en az 2 kez görülmüş kelimeler)

📚 Örnekler

Örnek 1: Dilbilimsel Analiz

# Kelime parçalanması
text = "Üniversitelerimizde"
tokens = tokenizer.tokenize(text)
print(f"Parçalar: {tokens}")
# Parçalar: ['Üniversite', 'leri', 'mizde']

# Token ID'leri
ids = tokenizer.convert_tokens_to_ids(tokens)
print(f"IDs: {ids}")

⚠️ Sınırlamalar

Bilinçli Kısıtlamalar

  1. Vocab Size: 5.610 (Küçük ama verimli)
    • ✅ Hızlı tokenizasyon sağlar.
    • ❌ Nadir kelimeleri fazla parçalayabilir.
  2. Türkçeye Özel: Sadece Türkçe için optimize edilmiştir.
    • ✅ Türkçe için en iyi performansı verir.
    • ❌ İngilizce vb. dillerle uyumsuzluk yaşayabilir.
  3. CulturaX Bias:
    • ✅ Haber, sosyal medya vb. konularda iyidir.
    • ❌ Teknik jargon veya kodlama dilinde eksik kalabilir.

📝 Atıf (Citation)

Bu tokenizer'ı bilimsel çalışmalarda kullanıyorsanız, lütfen aşağıdaki şekilde atıf yapın:

@software{mini_turkish_tokenizer,
  title = {Mini Turkish Tokenizer},
  author = {[Kaan İlker Nacar]},
  year = {2025},
  url = {https://huggingface.co/kaanilker/mini-turkish-tokenizer},
  license = {GPL-2.0}
}

Bu dosya veripazari.com.tr topluluğu tarafından Hugging Face altyapısında barındırılmaktadır. Orijinal emeğe saygı kuralımız gereği lisans ve model isimleri korunmuştur.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train Taklaxbr/Mini-Turkish-Tokenizer-BPE