File size: 2,862 Bytes
47d498c
b387a6e
 
 
 
 
 
 
 
 
47d498c
 
b387a6e
47d498c
b387a6e
 
47d498c
b387a6e
 
47d498c
b387a6e
47d498c
b387a6e
 
 
 
 
 
 
 
 
 
47d498c
b387a6e
47d498c
b387a6e
 
 
 
 
 
47d498c
b387a6e
 
47d498c
b387a6e
47d498c
b387a6e
 
47d498c
b387a6e
47d498c
b387a6e
 
 
 
 
 
 
47d498c
b387a6e
47d498c
b387a6e
 
47d498c
b387a6e
 
 
47d498c
b387a6e
47d498c
b387a6e
 
 
 
47d498c
b387a6e
 
47d498c
b387a6e
 
 
 
 
 
47d498c
b387a6e
 
 
 
 
47d498c
b387a6e
 
 
47d498c
b387a6e
47d498c
b387a6e
47d498c
b387a6e
 
 
 
 
47d498c
b387a6e
 
47d498c
b387a6e
47d498c
b387a6e
 
 
 
47d498c
b387a6e
47d498c
b387a6e
47d498c
b387a6e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
---
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.