Metadata-Version: 2.4
Name: turk-nlp-prep
Version: 0.1.0
Summary: Transformer modelleri için C-optimize Türkçe NLP veri ön işleme ve çoklu etiket kodlayıcısı.
Author-email: Ahmet Salih Madenci <salih1967ahmet@hotmail.com>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.20.0
Requires-Dist: pandas>=1.3.0

# 🇹🇷 turk-nlp-prep

Transformer tabanlı NLP modelleri (Turkish BERT, XLM-RoBERTa vb.) için C-seviyesinde optimize edilmiş, yüksek performanslı Türkçe veri ön işleme ve çoklu etiket (multi-label) kodlama kütüphanesi.

## 🚀 Özellikler

- **Akıllı Metin Normalizasyonu:** Türkçe'ye özgü şapkalı harf (`KÂĞIT` -> `kağıt`) ve büyük/küçük harf (`İ/I`) dönüşümlerini hatasız yönetir.
- **Anti-Gürültü:** Sosyal medya verilerindeki karakter uzamalarını (`çoooook` -> `çook`), HTML etiketlerini ve URL/E-posta sızıntılarını temizler.
- **Kesme İşareti Zekası:** `İstanbul'da` gibi yapıları `istanbul da` olarak ayırarak kelime köklerinin (tokenizer tarafından) doğru tanınmasını sağlar.
- **O(1) Vektörizasyon (Advanced Indexing):** Dinamik sınıf sayısına sahip çoklu etiketleri (multi-label) NumPy Advanced Indexing kullanarak milisaniyeler içinde ikili (binary) matrislere çevirir.
- **Tip Güvenliği & Hata Toleransı:** Eğitimde görülmeyen yepyeni bir etiket (out-of-vocabulary label) geldiğinde sistemi çökertmez, sessizce izole eder.

## 📦 Kurulum

Projeyi klonladıktan sonra bağımlılıkları yüklemek için:

```bash
git clone [https://github.com/KULLANICI_ADIN/turk-nlp-prep.git](https://github.com/KULLANICI_ADIN/turk-nlp-prep.git)
cd turk-nlp-prep
pip install -r requirements.txt
```

*(Not: Yakında PyPI üzerinden `pip install turk-nlp-prep` ile indirilebilir olacaktır.)*

## 💻 Kullanım (Hızlı Başlangıç)

Kütüphane, Pandas DataFrame'leri ile tam uyumlu çalışacak şekilde tasarlanmıştır.

```python
import pandas as pd
from turk_nlp_prep import TurkishTextNormalizer, MultiLabelMatrixEncoder

# 1. Örnek Veri Seti
df = pd.DataFrame({
    'metin': ["İSTANBUL'daki yeni YAZILIM yatırımları harikaaa!!! [www.ornek.com](https://www.ornek.com)"],
    'etiketler': [["Teknoloji", "Yazılım"]]
})

# 2. Modülleri Başlat (Esnek parametrelerle)
normalizer = TurkishTextNormalizer(remove_numbers=True, fix_elongations=True)
encoder = MultiLabelMatrixEncoder()

# 3. Boru Hattını (Pipeline) Çalıştır
df['temiz_metin'] = df['metin'].apply(normalizer.normalize)
hedef_matris = encoder.fit_transform(df['etiketler'].tolist())

print(df['temiz_metin'].iloc[0])
# Çıktı: "istanbul daki yeni yazılım yatırımları harikaa"

print(hedef_matris)
# Çıktı: [[1 1]] (Teknoloji ve Yazılım sınıfları aktif)
```

## 🧠 Sistem Mimarisi

* **`TurkishTextNormalizer`:** Tüm regex (düzenli ifade) kurallarını `__init__` bloğunda C seviyesinde önceden derleyerek (pre-compiled) döngü maliyetini sıfıra indirir.
* **`MultiLabelMatrixEncoder`:** `__slots__` bellek yönetimi ve `np.int8` (8-bit) veri tipi kullanarak milyonlarca satırlık eğitim verilerinde RAM tüketimini minimize eder.
