A high-performance Turkish tokenizer based on linguistic rules and BPE, written in Rust.
Project description
Turkish Tokenizer
PyPI version | Python 3.8+ | License: MIT
turkish-tokenizer, Türkçe doğal dil işleme görevleri için geliştirilmiş, dilbilim kurallarına (ünlü uyumu, ünsüz yumuşaması vb.) sadık kalan, yüksek performanslı ve hibrid (Rule-Based + BPE) bir tokenizer kütüphanesidir.
Rust ile yeniden yazılarak Python versiyonuna kıyasla ~100x performans artışı sağlanmıştır.
Özellikler
- Hibrid Yapı: Kök bulma ve ek analizi ile BPE (Byte Pair Encoding) yöntemlerini birleştirir.
- Dilbilimsel Doğruluk:
- Ünlü uyumu (Vowel Harmony)
- Ünsüz yumuşaması (Consonant Softening)
- Ünsüz düşmesi ve daralması
- Yüksek Performans: Rust tabanlı motor ile milisaniyeler içinde büyük metinleri tokenize eder.
- Tam Uyumluluk: Orijinal Python implementasyonu ile %99.8 oranında çıktı benzerliği.
Kurulum
PyPI üzerinden en güncel versiyonu indirebilirsiniz:
pip install turkish-tokenizer
Hızlı Başlangıç
Tokenizasyon (Encode)
Metinleri modelin anlayabileceği ID listelerine dönüştürmek için:
from turkish_tokenizer import TurkishTokenizer
# Tokenizer'ı başlat
tokenizer = TurkishTokenizer()
text = "Bugün hava çok güzel."
tokens = tokenizer.encode(text)
print(f"Text: {text}")
print(f"Token IDs: {tokens}")
# Çıktı: [2, 0, 1234, 5678, ...]
Geri Dönüştürme (Decode)
ID listelerini tekrar okunabilir metne dönüştürmek için. Decoder, kelimelerin kök ve eklerini birleştirirken ses olaylarını otomatik olarak uygular.
decoded_text = tokenizer.decode(tokens)
print(f"Decoded: {decoded_text}")
# Çıktı: Bugün hava çok güzel.
Gelişmiş Kullanım
Tokenizer, cümleleri parçalara ayırırken (tokenization) ve birleştirirken (decoding) bağlama duyarlı işlemler yapar.
# Örnek: Yumuşama ve Ünlü Uyumu
ids = tokenizer.encode("Kitabı bana ver")
# "Kitap" + "ı" -> "Kitabı" (p -> b yumuşaması)
decoded = tokenizer.decode(ids)
assert decoded == " Kitabı bana ver"
Performans
Bu kütüphane Rust dili (pyo3 ve maturin) kullanılarak geliştirilmiştir. Büyük veri setlerinde (örneğin Cosmos Corpus) saniyede yüz binlerce kelimeyi işleyebilir.
Lisans
Bu proje MIT lisansı ile lisanslanmıştır.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file turkish_tokenizer-1.0.4.tar.gz.
File metadata
- Download URL: turkish_tokenizer-1.0.4.tar.gz
- Upload date:
- Size: 242.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33141b9f8c768393d23c5b98885fcae38991c2018fb257ee2f28c902ddab4bfb
|
|
| MD5 |
93c9c3b6f22de4e4259994a8bae57ac6
|
|
| BLAKE2b-256 |
453ab6206266300d50f5dbd3dec6efe7f519d227d2c7d87dec6b03774b99b5ae
|
File details
Details for the file turkish_tokenizer-1.0.4-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: turkish_tokenizer-1.0.4-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 464.6 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f97dcd864ebd35c957ec2d2eded4f462e303e7a3d7efddf2b8e652b1697aa83b
|
|
| MD5 |
3a9e357440372c7b258300cc87c99bd0
|
|
| BLAKE2b-256 |
e11a529681bc75795ae0e4580d8e254bf80cff09f4fd94b7dab8366914838a85
|