--- license: gpl-2.0 language: - tr pipeline_tag: token-classification tags: - token - tokenization - turkish - nlp - llm - mini datasets: - uonlp/CulturaX creator: kaanilker --- > 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](https://huggingface.co/kaanilker/mini-turkish-tokenizer) > 🔗 Derleyen Platform: [VeriPazarı](https://veripazari.com.tr) # 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 ```bash pip install transformers ``` ### Temel Kullanım ```python 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) ```python # Token'ları metne geri çevir decoded = tokenizer.decode(tokens) print(decoded) # Output: "Merhaba, ben yapay zekayım!" ``` ### Batch (Toplu) İşleme ```python 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 | |---|---|---| | `` | 0 | Padding (doldurma) | | `` | 1 | Unknown (bilinmeyen) | | `` | 2 | Beginning of Sequence (başlangıç) | | `` | 3 | End of Sequence (bitiş) | ### Eğitim Konfigürasyonu ```python 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 ```python 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 ```python 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ı ```python 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 ```python 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ı ```text 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 ```python # 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: ```bibtex @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.*