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
