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
- Vocab Size: 5.610 (Küçük ama verimli)
- ✅ Hızlı tokenizasyon sağlar.
- ❌ Nadir kelimeleri fazla parçalayabilir.
- 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.
- 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.