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.4.tar.gz (242.0 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.4-cp313-cp313-macosx_11_0_arm64.whl (464.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Hashes for turkish_tokenizer-1.0.4.tar.gz
Algorithm Hash digest
SHA256 33141b9f8c768393d23c5b98885fcae38991c2018fb257ee2f28c902ddab4bfb
MD5 93c9c3b6f22de4e4259994a8bae57ac6
BLAKE2b-256 453ab6206266300d50f5dbd3dec6efe7f519d227d2c7d87dec6b03774b99b5ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turkish_tokenizer-1.0.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f97dcd864ebd35c957ec2d2eded4f462e303e7a3d7efddf2b8e652b1697aa83b
MD5 3a9e357440372c7b258300cc87c99bd0
BLAKE2b-256 e11a529681bc75795ae0e4580d8e254bf80cff09f4fd94b7dab8366914838a85

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