Turkish tokenizer for Turkish language processing
Project description
Turkish Tokenizer
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)
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
- Go to your GitHub repository settings
- Navigate to "Secrets and variables" → "Actions"
- Add the following secrets:
PYPI_API_TOKEN: Your PyPI API token (starts withpypi-)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
mainordevelopbranches - Every pull request to
mainbranch
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
- Repository'yi klonlayın:
git clone <repository-url>
cd tokenizer
- 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
- Yeni bir branch oluşturun:
git checkout -b feature/yeni-ozellik
- Testleri çalıştırın:
# Python testleri
python -m pytest tests/
# Rust testleri
cargo test
- Kod stilini kontrol edin:
# Python
flake8 .
black .
- Değişikliklerinizi commit edin:
git add .
git commit -m "feat: yeni özellik eklendi"
Pull Request Süreci
- Branch'inizi push edin:
git push origin feature/yeni-ozellik
- GitHub üzerinden pull request açın
- Code review sürecini takip edin
- Gerekli düzeltmeleri yapın
- 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
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-0.2.4.tar.gz.
File metadata
- Download URL: turkish_tokenizer-0.2.4.tar.gz
- Upload date:
- Size: 234.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
167bc3847daac06e05a8a25c0f58b2f8aa33e4c52bb540e1bd78917293aa4b24
|
|
| MD5 |
5d28a5d8c63c8292f5833ae928a122a1
|
|
| BLAKE2b-256 |
ed423e81c46d87a9cedc76b66261887d4011e5b965ca39506985c91be0e37ab8
|
File details
Details for the file turkish_tokenizer-0.2.4-py3-none-any.whl.
File metadata
- Download URL: turkish_tokenizer-0.2.4-py3-none-any.whl
- Upload date:
- Size: 227.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
977fe580dac3916db64f7ebff6edec298991103e1d3c9ea99cb21dcfcd34bb43
|
|
| MD5 |
91053f3b6901789318d79f92103e4556
|
|
| BLAKE2b-256 |
f7fd09da84c1a739486a8d783d50954c4ef8698bca6b3f9a0b9a9e616cbc6305
|