Skip to main content

Turkish tokenizer for Turkish language processing

Project description

Turkish Tokenizer

PyPI version Python 3.8+ License: MIT

Dilbilim kurallarını temel alarak, çok dilli metinleri işlemek ve anlam bütünlüğünü korumak için gelişmiş bir tokenizer altyapısı.

Kurulum

PyPI üzerinden kurulum (Önerilen)

pip install turkish-tokenizer

Geliştirme için kurulum

git clone https://github.com/malibayram/turkish-tokenizer.git
cd turkish-tokenizer
pip install -e .

Hızlı Başlangıç

Temel Tokenizer Kullanımı

from turkish_tokenizer import TurkishTokenizer

# Tokenizer'ı başlat
tokenizer = TurkishTokenizer()

# Metin tokenizasyonu
text = "Merhaba dünya! Nasılsınız?"
tokens = tokenizer.encode(text)
print("Token IDs:", tokens)

# Token'ları metne geri çevir
decoded_text = tokenizer.decode(tokens)
print("Decoded:", decoded_text)

Hugging Face Uyumlu Tokenizer

from turkish_tokenizer import HFTurkishTokenizer

# Hugging Face uyumlu tokenizer'ı başlat
tokenizer = HFTurkishTokenizer()

# Model girişi için hazırla
model_inputs = tokenizer(
    "Bu cümle model girişi için hazırlanacak.",
    add_special_tokens=True,
    padding=True,
    truncation=True,
    max_length=512,
    return_tensors="pt"
)

print(model_inputs)
# Output: {'input_ids': tensor([[...]]), 'attention_mask': tensor([[...]])}

Hugging Face entegrasyonu hakkında daha fazla bilgi için README_HF.md dosyasına bakın.

Gelişmiş Tokenizasyon

from turkish_tokenizer import TurkishTokenizer

# Tokenizer'ı başlat
tokenizer = TurkishTokenizer()

# Tokenları string olarak al
text = "Kitapları masa üzerinde bıraktım."
tokens = tokenizer.tokenize(text)
print("Tokens:", tokens)

# Token tiplerini öğren
token_details, _ = tokenizer.tokenize_text(text)
for token in token_details:
    print(f"Token: '{token['token']}', ID: {token['id']}, Type: {token['type']}")

İlk Versiyon

  • Kelime köklerinin ses olayına uğramış olan hallerinin ses olayına uğramamış olan halleri ile aynı id ile temsil edilmesi
  • İlkHarfBüyük tokeni oluşturulması ve tüm tokenlerin ilk harfinin küçük harfe çevrilmesi
  • Çoğul tokeni oluşturulması ve ler - lar eklerinin silinmesi
  • Tamamen aynı olan ama sesleri farklı olan eklerin özel tokenler ile temsil edilmesi
  • Boşluk, satır sonu ve tab karakterlerinin özel tokenler ile temsil edilmesi

Gelecek Özellikler

  • Çok dilli destek
  • Performans optimizasyonları
  • Daha kapsamlı test senaryoları
  • Web API desteği
  • Docker entegrasyonu

GitHub Actions Setup

This project uses GitHub Actions for automated testing and publishing to PyPI. To set up automated publishing:

1. Add PyPI API Token to GitHub Secrets

  1. Go to your GitHub repository settings
  2. Navigate to "Secrets and variables" → "Actions"
  3. Add the following secrets:
    • PYPI_API_TOKEN: Your PyPI API token (starts with pypi-)
    • TEST_PYPI_API_TOKEN: Your TestPyPI API token (optional)

2. Publishing Workflow

The project will automatically publish to PyPI when:

  • A new version tag is pushed (e.g., v0.2.1)
  • The workflow is manually triggered from GitHub Actions

3. Testing Workflow

Tests run automatically on:

  • Every push to main or develop branches
  • Every pull request to main branch

Projenin Amacı ve Kapsamı

Bu projenin amacı, metin analizi ve doğal dil işleme (NLP) süreçlerinde kullanılabilecek, dilbilgisel yapıları ve anlam bütünlüğünü dikkate alan bir tokenizer geliştirmektir. Proje, Türkçe dilbilgisi kurallarını referans alarak başlamış olsa da, evrensel dil kuralları doğrultusunda çok dilli bir yapıya sahip olacak şekilde genişletilecektir.

Temel Özellikler

  • Dilbilim kurallarına dayalı tokenizasyon
  • Morfolojik analiz desteği
  • Çok dilli destek altyapısı
  • Genişletilebilir mimari
  • Yüksek performanslı işleme
  • Özel karakter ve boşluk işleme desteği

Dosya Yapısı

Tokenizer üç temel sözlük dosyası kullanır:

  • kokler.json: Kök kelimeler ve özel tokenler (0-20000 arası ID'ler)
  • ekler.json: Ekler (20000-20256 arası ID'ler)
  • bpe_tokenler.json: BPE token'ları

Özel Tokenler

{
  "<uppercase>": 0, // Büyük harf işareti
  "<unknown>": 1, // Bilinmeyen token
  " ": 2, // Boşluk karakteri
  "\n": 3, // Satır sonu
  "\t": 4, // Tab karakteri
  "<pad>": 5, // Padding token
  "<eos>": 6 // End of sequence token
}

Kullanım

Python Implementasyonu

from turkish_tokenizer import TurkishTokenizer

tokenizer = TurkishTokenizer()

text = "Kitabı ve defterleri getirn,\nYouTube\t"
result = tokenizer.tokenize(text)
print(result)

Geliştirme ve Katkıda Bulunma

Geliştirme Ortamı Kurulumu

  1. Repository'yi klonlayın:
git clone <repository-url>
cd tokenizer
  1. Python ortamını hazırlayın:
python -m venv venv
source venv/bin/activate  # Unix/macOS
# veya
.\venv\Scripts\activate  # Windows

Geliştirme Süreci

  1. Yeni bir branch oluşturun:
git checkout -b feature/yeni-ozellik
  1. Testleri çalıştırın:
# Python testleri
python -m pytest tests/

# Rust testleri
cargo test
  1. Kod stilini kontrol edin:
# Python
flake8 .
black .
  1. Değişikliklerinizi commit edin:
git add .
git commit -m "feat: yeni özellik eklendi"

Pull Request Süreci

  1. Branch'inizi push edin:
git push origin feature/yeni-ozellik
  1. GitHub üzerinden pull request açın
  2. Code review sürecini takip edin
  3. Gerekli düzeltmeleri yapın
  4. PR'ınız onaylandığında main branch'e merge edilecektir

Geliştirme Gereksinimleri

Python

  • Python 3.8+
  • pytest
  • black
  • flake8

Lisans

MIT


Not: Proje aktif geliştirme aşamasındadı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-0.2.20.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-0.2.20-py3-none-any.whl (232.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: turkish_tokenizer-0.2.20.tar.gz
  • Upload date:
  • Size: 242.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for turkish_tokenizer-0.2.20.tar.gz
Algorithm Hash digest
SHA256 bbe4bbfb0016391554be5676bf3135f5e66a2325428e2d3c7cbada5e6a0a1a7a
MD5 58e1e5f6cc5ee7a2e24f9eae9ac52674
BLAKE2b-256 879c55731a5928b4acc6489b1982a2effda30a26698398a441ba4d76fad87549

See more details on using hashes here.

File details

Details for the file turkish_tokenizer-0.2.20-py3-none-any.whl.

File metadata

File hashes

Hashes for turkish_tokenizer-0.2.20-py3-none-any.whl
Algorithm Hash digest
SHA256 d273618367f983bfe85e24b820e54fe5196713fd8c532553a33637b3eba5dba3
MD5 aeda924da84f977df43f00b3ad98d4e7
BLAKE2b-256 733461d539a90fba19353c34e60b31f5949c898e2d66175ac90d06a5a0a6bdca

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