Taklaxbr's picture
Update README.md
8b541fe verified
|
Raw
History Blame Contribute Delete
6.23 kB
---
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.*