# Türkçe doğal dil işleme (NLP): neden zor, hangi araçlar var?

> Türkçe NLP eklemeli yapı ve Türkçe karakterler yüzünden zordur; Zemberek, Zeyrek ve Akana gibi açık kaynak araçlar kök bulma, düzeltme ve arama yapar.

Türkçe doğal dil işleme (NLP), bilgisayarların Türkçe metni sözcüklere ayırması, çözümlemesi, düzeltmesi ve anlamına göre araması için kullanılan yöntem ve araçların bütünüdür. Türkçe sondan eklemeli bir dil olduğu için tek bir kök yüzlerce farklı biçimde görünebilir; bu yüzden İngilizce için tasarlanmış araçlar Türkçede sık hata yapar. Temel görevler tokenizasyon, morfolojik analiz, yazım ve dilbilgisi düzeltme, kişisel veri maskeleme, yapay zekâ metni tespiti ve aramadır; Zemberek, Zeyrek ve ALTAI’nin açık kaynak kütüphanesi Akana bu işler için kullanılan araçlardandır.

## Türkçe NLP ne işe yarar?

Kurumlarda Türkçe NLP çoğu zaman görünmeyen bir katmandır. Belge arama uygulamasının indeksini kurar, müşteri mesajlarını sınıflandırır, bir metni dil modeline göndermeden önce kişisel verileri maskeler, yazışmalardaki yazım hatalarını düzeltir.

Büyük dil modelleri ([LLM](https://altai.dev/tr/rehber/sozluk/#llm)) Türkçeyi artık iyi anlıyor. Yine de milyonlarca belgeyi indekslemek, her isteği maskelemek ya da yazım kurallarını tutarlı uygulamak gibi işler, CPU’da hızlı çalışan ve her seferinde aynı sonucu veren araçlarla yapılır. LLM bu hattın bir parçasıdır, tamamı değil.

## Türkçeyi NLP için zor yapan ne?

**Sondan eklemeli yapı.** Türkçede anlam, köke eklenen eklerle kurulur. “okullarımızdakilerden” tek sözcükte yedi parçadır: okul + lar + ımız + da + ki + ler + den. “çalıştırılamayacakmış” bir fiil kökü ve beş ekten oluşur: çalış + tır + ıl + ama + yacak + mış. Sözlükte “okul” arayan bir araç, kökü bulmadan bu sözcüğü eşleştiremez.

**Ses değişimleri.** Ekler ünlü uyumuna göre biçim değiştirir (-lar/-ler, -da/-de/-ta/-te); kökler de ek alınca değişebilir. “kitabıma” sözcüğünde kök “kitab” olarak görünür; doğru analiz onu sözlükteki “kitap” biçimine döndürür.

**Türkçe karakterler.** Türkçede ç, ğ, ı, ö, ş ve ü harfleri vardır; en çok sorun çıkaran, noktalı ve noktasız i’dir. Dile duyarsız bir küçük harfe çevirme işlemi “IŞIK” sözcüğünü “ışık” yerine “işik” yapar. Gündelik yazışmalarda Türkçe karakterler hiç kullanılmayabilir (“cok guzel”) ya da sözcükler kısaltılır (“yapcam”).

**Kesme işareti ve birleşik sözcükler.** Özel adlara gelen ekler kesmeyle ayrılır (İstanbul’da); tokenizer bunu doğru tanımalıdır. Birleşik sözcüklerin bitişik ya da ayrı yazımı, “de/da” ve “ki” bağlaçları ve “mi” soru eki en sık yapılan yazım hatalarındandır.

**Alt sözcük parçalama.** Çok dilli modellerin [tokenizer](https://altai.dev/tr/rehber/sozluk/#tokenizer)’ları (sözcük ayırıcıları) Türkçe sözcükleri çoğu zaman birkaç parçaya böler. Aynı içerik daha çok token tutar ve modelin bağlam penceresi daha hızlı dolar.

## Temel görevler

| Görev | Ne yapar | Örnek |
|---|---|---|
| Tokenizasyon | Metni sözcük ve cümlelere ayırır; kısaltma, tarih ve adresleri bölmez | “Dr. Ayşe 3 Mart’ta geldi.” tek cümledir |
| [Morfolojik analiz](https://altai.dev/tr/rehber/sozluk/#morfolojik-analiz) | Sözcüğün kökünü ve eklerini bulur | kitabıma → kitap + ım + a |
| Yazım denetimi | Yanlış yazımı ve eksik Türkçe karakteri düzeltir | cok guzel → çok güzel |
| Dilbilgisi düzeltme | Bağlaç, ek ve kesme işareti hatalarını bulur | Bende geldim → Ben de geldim |
| [Kişisel veri maskeleme](https://altai.dev/tr/rehber/sozluk/#kisisel-veri-maskeleme) | Kimlik numarası, IBAN, telefon, API anahtarı gibi alanları yer tutucuyla değiştirir | TR… → [IBAN] |
| Yapay zekâ metni tespiti | LLM’le yazılmış metnin izlerini arar | tekrarlanan “-mektedir” yapısı |
| Arama | Sözcüklere ([BM25](https://altai.dev/tr/rehber/sozluk/#bm25)) ve anlama ([anlamsal arama](https://altai.dev/tr/rehber/sozluk/#anlamsal-arama)) göre ilgili metni bulur | “faturamı nasıl öderim” → ödeme yöntemleri bölümü |

## Hangi açık kaynak araçlar var?

- **Zemberek (Zemberek-NLP):** Java ile yazılmıştır; morfolojik analiz, tokenizasyon, metin normalleştirme ve yazım denetimi gibi modüller içerir. Türkçe NLP’de uzun süredir kullanılan bir kütüphanedir.
- **Zeyrek:** Zemberek’in morfolojik analizcisinin Python’a kısmi uyarlamasıdır; Python projelerinde kök ve ek analizi için kullanılır.
- **Türkçe ve çok dilli modeller:** BERTurk gibi Türkçe Transformer modelleri sınıflandırma ve varlık tanıma için ince ayarla kullanılır. Anlamsal arama için bkz. [Türkçe embedding modelleri](https://altai.dev/tr/rehber/turkce-embedding-modelleri/).
- **Akana:** ALTAI’nin geliştirdiği Türkçe NLP kütüphanesi. Rust ile yazılmıştır, Python’dan, komut satırından ve Rust’tan kullanılır, donanım SIMD hızlandırması kullanır. MIT / Apache-2.0 lisanslıdır.

Akana’nın sekiz aracı ve projenin kendi testlerindeki (README) değerler:

| Araç | Ne yapar | Ölçüm |
|---|---|---|
| Tokenizer | Kesme işaretli özel adları, kısaltmaları, adresleri, tarihleri ve para birimlerini doğru ayıran kurala dayalı sözcük ve cümle ayırıcı | Saniyede yaklaşık 950.000 token |
| Morfolojik analiz | 93.167 köklük sözlükle kök ve ek analizi, birleşik sözcük ayrıştırma, analizden sözcük üretme | Zeyrek’ten yaklaşık 56 kat hızlı |
| Dilbilgisi denetimi ve düzeltme | GECTurk’ün 25 kategorisinin tamamında (de/da, ki, mi, kesme işareti, birleşik yazım) açıklamalı düzeltme | Tek CPU çekirdeğinde saniyede 1.471 cümle |
| Yazım denetimi | SIMD hızlandırmalı yazım denetimi, Türkçe karakter düzeltme, gündelik yazımı düzeltme (yapcam → yapacağım) | — |
| Kişisel veri ve gizli anahtar maskeleme | Kimlik numarası, IBAN ve telefondan API anahtarlarına ve şifrelere kadar kişisel veri ve sır sayılan 50’den fazla kategori; doğrulama algoritmaları ve kayıpsız geri yükleme | Saniyede yaklaşık 3.570 belge |
| Yapay zekâ metni tespiti | Noktalama tuhaflıkları, tekrarlanan -mektedir yapısı, tekdüze ritim, bürokratik bağlaçlar, çeviri kokan ifadeler | — |
| Türkçe humanizer (insansılaştırıcı) | Bu bulguları beş üslupta somut yeniden yazım önerilerine çevirir | — |
| Anlamsal ve hibrit arama | 2,5 MB’lık yerleşik Türkçe embedding modeli; ALTAI’nin kendi geliştirdiği yöntemle 1-bit vektörler morfolojik BM25 ile birleşir | Saniyede 20.000 cümle; Türkçe RAG testlerinde yalnız CPU ile %96,7–100 Recall@10 |

İlk örnek (Akana 0.6.0):

```bash
pip install akana==0.6.0

python - <<'PY'
import akana

print(akana.tokenize_words("Kitabıma yeni notlar ekledim."))
print(akana.Morphology().analyze("kitabıma"))
PY
```

## Ne zaman özel bir Türkçe araç gerekir?

Gerekir:

- **Arama indeksi kuruyorsanız.** Kök bulmadan yapılan sözcük araması “kitap” ile “kitabıma”yı eşleştiremez.
- **Hacim büyükse.** Milyonlarca belgeyi tek tek LLM’e göndererek işlemek yavaş ve pahalıdır.
- **Metin bir modele ya da kurum dışına gidecekse.** Kişisel veriler önce maskelenmelidir.
- **Sonuç her seferinde aynı olmalıysa.** Kurala dayalı yazım ve dilbilgisi denetiminin her düzeltmesi izlenebilir ve açıklanabilir.

Gerekmeyebilir:

- Az sayıda metinde özetleme, çeviri ya da serbest yazım için iyi bir LLM çoğu zaman yeterlidir.
- Embedding modelleri alt sözcük parçalarıyla çalıştığı için ayrıca morfolojik genişletme istemeyebilir. ALTAI’nin Türkçe embedding deneyinde, gerçek metin üzerinde uçtan uca eğitilen 19,36 MB’lık model STSb-TR testinde %91,36 aldı; morfolojik genişletmeyle kurulan 182 MB’lık model %86,83’te kaldı.

## Adım adım: Türkçe metin işleme hattı

1. **Metni çıkarın.** PDF ve DOCX dosyalarını yapısını koruyarak metne çevirin; [llm-food](https://altai.dev/tr/open-source/llm-food/) bu dosyaları Markdown’a dönüştürür.
2. **Normalleştirin.** Unicode biçimini sabitleyin, büyük-küçük harf dönüşümünü Türkçe kurallarla yapın, eksik Türkçe karakterleri düzeltin.
3. **Maskeleyin.** Kişisel verileri ve gizli anahtarları, metin bir modele ya da dış servise gitmeden önce yer tutucuyla değiştirin.
4. **Ayırın ve parçalayın.** Metni cümlelere ayırın, arama için anlamlı parçalara bölün.
5. **İndeksleyin.** Kök ve ek analiziyle sözcük indeksi (BM25), embedding ile vektör indeksi kurun; ikisini [hibrit aramada](https://altai.dev/tr/rehber/sozluk/#hibrit-arama) birleştirin.
6. **Ölçün.** Kullanıcılarınızın sorularıyla doğru parçanın ilk sonuçlarda gelip gelmediğini ([Recall@10](https://altai.dev/tr/rehber/sozluk/#recall-10)) ölçün.

## Dikkat edilmesi gerekenler

- Yayımlanan hız ve doğruluk değerleri, ölçüldükleri veriye ve donanıma bağlıdır. Akana’nın değerleri de projenin kendi testleridir; kararı kendi metinlerinizle verin.
- Yapay zekâ metni tespiti bir işarettir, kanıt değildir. Bir kişi hakkında karar vermek için tek başına kullanmayın.
- Maskeleme teknik bir önlemdir; bir veri işlemenin [KVKK](https://altai.dev/tr/rehber/sozluk/#kvkk)’ya uygun olup olmadığını tek başına belirlemez. Bu metin hukuki danışmanlık değildir; kendi durumunuz için bir hukukçuya danışın.
- Kütüphane sürümünü sabitleyin. Tokenizer ya da sözlük değişirse indeksi yeniden kurmanız gerekebilir.

## ALTAI’de nasıl yapıyoruz

Akana’yı Türkçe belge arama uygulamalarında kullanıyoruz: kurumunuzun metinlerini işliyor, arama için parçaları hazırlıyor ve sonuçları kendi örneklerinizle test ediyoruz. [Doküman Asistanı](https://altai.dev/tr/products/document-assistant/) projelerinde seçtiğiniz PDF ve DOCX belgelerini indeksliyor, Türkçe sorular ve kurum terimleriyle test ediyor, her yanıtla birlikte dayandığı belge bölümünü gösteriyoruz. Model isteklerinde hassas bilgilerin maskelenmesini ya da isteğin yerel modelde tutulmasını [Yada](https://altai.dev/tr/products/yada/) yönetir. Kurulum adımları [Akana sayfasında](https://altai.dev/tr/open-source/akana/); kendi metinleriniz için [bize yazın](https://altai.dev/tr/contact/).

## Sık sorulan sorular

### Türkçe NLP için hangi kütüphaneyi kullanmalıyım?

İşe ve kullandığınız programlama diline göre değişir. Java projelerinde Zemberek, Python’da morfolojik analiz için Zeyrek yaygın seçeneklerdir. Tokenizasyondan maskelemeye ve hibrit aramaya kadar birden fazla işi tek kütüphaneyle yapmak istiyorsanız Akana’yı deneyebilirsiniz; hangisini seçerseniz seçin, kendi metinlerinizle küçük bir test yapın.

### Büyük dil modelleri varken Türkçe NLP araçlarına hâlâ gerek var mı?

Evet, ama farklı işler için. LLM’ler anlamada ve metin üretmede güçlüdür; arama indeksi, büyük hacimli ön işleme, maskeleme ve kurala dayalı denetim ise hızlı ve tutarlı araçlarla yapılır. Çoğu kurumsal sistemde ikisi aynı hatta birlikte çalışır.

### Noktalı ve noktasız i sorunu nasıl çözülür?

Büyük-küçük harf dönüşümünü Türkçe yerel ayarıyla (tr-TR) yapın; dile duyarsız dönüşüm “I” harfini “ı” yerine “i” yapar. Arama tarafında sorguyu ve belgeyi aynı kurallarla normalleştirin. Türkçe karakter kullanılmadan yazılmış metinlerde karakter düzeltme (“cok” → “çok”) eşleşmeyi artırır.

### Akana ücretsiz mi, ticari projede kullanılabilir mi?

Akana açık kaynaktır ve MIT / Apache-2.0 lisanslıdır. Her iki lisans da ticari kullanıma izin verir; yine de lisans koşullarını kendi projeniz için kontrol edin. Kurulum `pip install akana==0.6.0` komutuyla yapılır.

### Yapay zekâyla yazılmış Türkçe metin kesin olarak tespit edilebilir mi?

Hayır. Tespit araçları noktalama tuhaflıkları, tekrarlanan kalıplar ve tekdüze ritim gibi işaretlere bakar; insanlar da böyle yazabilir, düzenlenmiş model çıktısı da bu işaretleri taşımayabilir. Sonucu bir inceleme önerisi olarak kullanın.

Source: https://altai.dev/tr/rehber/turkce-dogal-dil-isleme/
