--- 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 | |---|---| | `` | Bilinmeyen token | | `` | Dolgu tokenı | | `` | Metin başlangıcı | | `` | Metin sonu | Tokenizer, metinlerin başına `` ve sonuna `` 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.