| --- |
| language: |
| - tr |
| library_name: tokenizers |
| tags: |
| - tokenizer |
| - bpe |
| - byte-level |
| - turkish |
| - nlp |
| --- |
| |
| # Turkish Byte-Level BPE Tokenizer |
|
|
| Bu repository, Türkçe metinler üzerinde sıfırdan eğitilmiş özel bir |
| **Byte-Level BPE tokenizer** içerir. |
|
|
| Bu çalışma, BPE tokenizer oluşturma ve Hugging Face Hub üzerinde |
| yayınlama ödevi kapsamında hazırlanmıştır. |
|
|
| ## Tokenizer özellikleri |
|
|
| - **Algoritma:** Byte-Level BPE |
| - **Dil:** Türkçe |
| - **Vocabulary boyutu:** 512 |
| - **Minimum frekans:** 2 |
| - **Unicode normalizasyonu:** NFC |
| - **Pre-tokenizer:** ByteLevel |
| - **Decoder:** ByteLevel |
| - **Maksimum dizi uzunluğu:** 512 |
| - **Eğitim kütüphanesi:** Hugging Face Tokenizers |
| - **Transformers uyumluluğu:** `PreTrainedTokenizerFast` |
|
|
| ## Özel tokenlar |
|
|
| | Token | Açıklama | |
| |---|---| |
| | `<unk>` | Bilinmeyen token | |
| | `<pad>` | Dolgu tokenı | |
| | `<bos>` | Metin başlangıcı | |
| | `<eos>` | Metin sonu | |
|
|
| Tokenizer, metinlerin başına `<bos>` ve sonuna `<eos>` tokenı ekleyecek |
| şekilde yapılandırılmıştır. |
|
|
| ## Eğitim verisi |
|
|
| Tokenizer yaklaşık **10.685 karakterden** ve **9 farklı paragraftan** |
| oluşan Türkçe bir metin üzerinde eğitilmiştir. |
|
|
| Eğitim metni aşağıdaki türlerden örnekler içerir: |
|
|
| - Fantastik kurgu |
| - Bilim kurgu |
| - Polisiye |
| - Siberpunk |
| - Bilimsel ve teknik metinler |
| - Türkçe karakterler |
| - Sayılar ve matematiksel ifadeler |
|
|
| ## Kullanım |
|
|
| ```python |
| from transformers import AutoTokenizer |
| |
| tokenizer = AutoTokenizer.from_pretrained( |
| "YusufSimsek/turkish-bytelevel-bpe" |
| ) |
| |
| text = "Merhaba dünya! Türkçe tokenizer çalışıyor." |
| |
| encoded = tokenizer( |
| text, |
| add_special_tokens=True |
| ) |
| |
| print("Token ID'leri:") |
| print(encoded["input_ids"]) |
| |
| print("Tokenlar:") |
| print( |
| tokenizer.convert_ids_to_tokens( |
| encoded["input_ids"] |
| ) |
| ) |
| |
| decoded = tokenizer.decode( |
| encoded["input_ids"], |
| skip_special_tokens=True, |
| clean_up_tokenization_spaces=False |
| ) |
| |
| print("Çözümlenen metin:") |
| print(decoded) |
| ``` |
|
|
| ## Sınırlamalar |
|
|
| Bu tokenizer küçük bir eğitim verisi üzerinde eğitilmiştir. Bu nedenle: |
|
|
| - Genel amaçlı büyük dil modelleri için yeterli değildir. |
| - Eğitim verisinde az görülen kelimeleri çok sayıda alt parçaya bölebilir. |
| - Vocabulary boyutu deneysel olarak 512 seçilmiştir. |
| - Daha büyük ve çeşitli bir Türkçe corpus ile yeniden eğitilmesi |
| tokenizer verimliliğini artırabilir. |
|
|
| Bu repository bir dil modeli içermez. Yalnızca metinleri tokenlara |
| dönüştürmek için kullanılan tokenizer dosyalarını içerir. |
|
|
| ## Dosyalar |
|
|
| - `tokenizer.json`: Vocabulary ve BPE birleşme kuralları |
| - `tokenizer_config.json`: Tokenizer yapılandırması |
| - `special_tokens_map.json`: Özel token eşlemeleri |
| - `training_report.json`: Eğitim ve test sonuçları |
|
|
| ## Geliştirici |
|
|
| **Yusuf Şimşek** |
|
|
| Bu tokenizer eğitim ve öğrenme amaçlı hazırlanmıştır. |