AI Programlama ve Teknoloji
AI ile doğal dil işleme (NLP) projeleri nasıl yapılır?
Doğal Dil İşleme (NLP) Projeleri için AI Kullanımı: Adım Adım Kılavuz
- Temel NLP İşlemleri:
python
# Metin temizleme import re def temizle(metin): return re.sub(r'[^\w\s]', '', metin.lower()) # Tokenization from nltk.tokenize import word_tokenize tokens = word_tokenize("Merhaba dünya!")
- Hazır Modellerle Hızlı Başlangıç:
python
from transformers import pipeline # Duygu analizi duygu_analiz = pipeline("sentiment-analysis", model="savasy/bert-base-turkish-sentiment-cased") print(duygu_analiz("Film müthişti!")) # Metin üretme text_generator = pipeline("text-generation", model="dbmdz/gpt2-turkish") print(text_generator("Yapay zeka", max_length=50))
- Özel Model Eğitimi:
python
from transformers import BertTokenizer, BertForSequenceClassification from transformers import Trainer, TrainingArguments tokenizer = BertTokenizer.from_pretrained("dbmdz/bert-base-turkish-cased") model = BertForSequenceClassification.from_pretrained("dbmdz/bert-base-turkish-cased", num_labels=5) # Eğitim ayarları training_args = TrainingArguments( output_dir='./results', num_train_epochs=3, per_device_train_batch_size=16 ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=val_dataset ) trainer.train()
- Metin Vektörleştirme:
python
from sklearn.feature_extraction.text import TfidfVectorizer vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(["örnek metin 1", "örnek metin 2"])
- Uygulama Örnekleri:
- chatbot: Rasa veya Dialogflow entegrasyonu
- Metin Sınıflandırma: Haber kategorilendirme
- Özetleme: BERT tabanlı özetleme modelleri
- Soru-Cevap: BERT veya ELECTRA modelleri
Önemli Kütüphaneler:
transformers
(Hugging Face)nltk
(Temel NLP işlemleri)spaCy
(Endüstriyel NLP)gensim
(Topic modeling)
Veri Hazırlama İpuçları:
- Türkçe için özel karakter temizleme
- Stopword listeleri oluşturma
- Lemmatization için TRmorph gibi araçlar
Optimizasyon:
- GPU kullanımı (CUDA)
- Mixed precision training
- Model quantization
Üretim Ortamı İçin:
- FastAPI veya Flask entegrasyonu
- ONNX formatında model kaydetme
- Docker container’ı oluşturma
Türkçe Özel Durumlar:
- Kelime köklerini bulmada zorluk
- Az kaynaklı dil olduğu için transfer learning önemli
- Özel tokenizer gereksinimi
Örnek Proje Yapısı:
text
nlp_projesi/ ├── veri/ │ ├── ham/ │ └── işlenmiş/ ├── modeller/ ├── src/ │ ├── veri_hazırlama.py │ ├── eğitim.py │ └── değerlendirme.py └── requirements.txt
Sonraki Adımlar:
- Küçük bir veri setiyle başlayın
- Baseline model oluşturun
- Modeli yavaş yavaş geliştirin
- Üretim ortamına taşıyın