Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turkish_tokenizer-1.0.1.tar.gz (241.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turkish_tokenizer-1.0.1-cp313-cp313-macosx_11_0_arm64.whl (460.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file turkish_tokenizer-1.0.1.tar.gz.

File metadata

  • Download URL: turkish_tokenizer-1.0.1.tar.gz
  • Upload date:
  • Size: 241.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for turkish_tokenizer-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c44050811d396c3098d8974bbc5adc4790426a1012b292522c522364922db08d
MD5 e607c5fc21e9dfbd1507ef310d26d143
BLAKE2b-256 ea7f68c38a7d9d5f4193d8df8a31c526e76985113d00a6a6ba870edebc97b060

See more details on using hashes here.

File details

Details for the file turkish_tokenizer-1.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for turkish_tokenizer-1.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8be607ee217c173b2a6b1e429bc7deb36b19aafcc4db43119101c55df945f40f
MD5 277048fa095a9259f100956cf3ac70df
BLAKE2b-256 ff85fcdf584553ac2527a4cb20745337947c2fcab3a5bb7a1977aca9420e7573

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page