saglik-bpe-tokenizer
Türkçe sağlık metinleri için sıfırdan eğitilmiş bir Byte-Level BPE tokenizer.
Türkçe gibi morfolojik olarak zengin bir dilde, alan-odaklı (sağlık) bir korpusla
eğitildiği için genel amaçlı çok dilli tokenizer'lara göre aynı metni belirgin
şekilde daha az token ile temsil eder.
Özellikler
| |
|---|
| Tür | Byte-Level BPE (GPT-2 tarzı) |
| Sözlük boyutu (vocab size) | 8.000 |
| Normalizer | NFKC |
| Özel token'lar | [UNK], [PAD], [CLS], [SEP], [MASK], `< |
| Dil | Türkçe |
| Alan | Sağlık / tıp |
Eğitim korpusu
Tokenizer, Türkçe Wikipedia'nın sağlık ile ilgili kategorilerinden (Diyabet,
Beslenme, Bulaşıcı hastalıklar, Kalp hastalıkları, Vitaminler vb.) resmi MediaWiki
API'si üzerinden toplanan makale metinleriyle eğitilmiştir. Wikipedia içeriği
CC BY-SA lisanslıdır ve API erişimine açıktır.
Değerlendirme — Türkçe token verimliliği
Kelime başına düşen token sayısı (fertility) ne kadar düşükse tokenizer o kadar
verimlidir. Örnek Türkçe sağlık cümlelerinde:
| Cümle | Kelime | Token | Fertility |
|---|
| "Diyabet, kan şekerinin sürekli yüksek seyrettiği kronik bir hastalıktır." | 9 | 13 | 1.44 |
| "Sağlıklı beslenme ve düzenli fiziksel aktivite hastalıkların önlenmesinde önemlidir." | 9 | 11 | 1.22 |
| "Gestasyonel diyabet gebelik sırasında ortaya çıkabilir." | 6 | 7 | 1.17 |
Karşılaştırma: Aynı cümleyi ("Diyabet, kan şekerinin sürekli yüksek...")
- bu tokenizer: 13 token
bert-base-multilingual-cased (mBERT): 24 token
Yani genel amaçlı çok dilli bir tokenizer'ın yaklaşık yarısı kadar token
kullanarak Türkçe metinleri daha verimli temsil eder.
Kullanım
1from transformers import AutoTokenizer
2
3tok = AutoTokenizer.from_pretrained("senemde/saglik-bpe-tokenizer")
4
5text = "Diyabet, kan şekerinin yüksek olduğu bir hastalıktır."
6ids = tok.encode(text)
7
8print("Vocab size:", tok.vocab_size)
9print("IDs:", ids)
10print("Tokens:", tok.convert_ids_to_tokens(ids))
11print("Decoded:", tok.decode(ids))
Sınırlamalar
- Küçük ve alan-odaklı bir korpusla eğitildiği için sağlık dışı alanlarda
(ör. hukuk, finans) verimlilik daha düşük olabilir.
- Sözlük boyutu (8.000) küçük tutulmuştur; büyük ölçekli bir dil modeli
ön-eğitimi için daha büyük bir korpus ve sözlük tercih edilebilir.
Lisans
Kod ve tokenizer MIT lisanslıdır. Eğitim korpusu Türkçe Wikipedia'dan (CC BY-SA)
türetilmiştir.
Eğitim amaçlı bir ödev kapsamında hazırlanmıştır.