| --- |
| 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 | |
| |---|---|---| |
| | `<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 |
| ```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.* |