| 3 dk okuma | 21 okunma

Uygulamalı örnek: Python ile adım adım spam mail sınıflandırıcı yapımı

Artık teoriyi biliyorsun ama gerçek bir AI projesi nasıl yapılır? Bu yazıda sıfırdan bir spam mail sınıflandırıcı geliştirerek makine öğrenmesi sürecini uçtan uca göreceksin. Veri hazırlamadan model eğitmeye, metriklerle değerlendirmeden sonuç üretmeye kadar her adımı basit ve anlaşılır şekilde uygulayacağız.

Uygulamalı örnek: Python ile adım adım spam mail sınıflandırıcı yapımı

Problem: Spam mi, değil mi?

E-posta kutunu düşün. Bazı mailler gerçekten önemliyken bazıları tamamen gereksiz (spam).

Bizim amacımız: Bir mailin spam olup olmadığını otomatik tahmin eden model yapmak Bu bir classification (sınıflandırma) problemidir.

Adım 1: Veri seti

Basit bir veri seti oluşturalım:


import pandas as pd

data = {
"text": [
"Kazandınız! Hemen tıklayın",
"Toplantı saat 3'te",
"Bedava hediye kazandınız",
"Yarın görüşelim",
"Şok indirim fırsatı",
"Proje dosyasını gönderiyorum"
],
"label": [1, 0, 1, 0, 1, 0] # 1 = spam, 0 = normal
}

df = pd.DataFrame(data)

Adım 2: Metni sayıya çevirme (TF-IDF)

Makine metni anlayamaz, sayıya çevirmemiz gerekir:


from sklearn.feature_extraction.text import TfidfVectorizer

vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(df["text"])
y = df["label"]

Adım 3: Train-Test split

Modeli doğru test etmek için veriyi bölelim:


from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=42
)

Adım 4: Model oluşturma ve eğitme

Basit ve güçlü bir model kullanalım:


from sklearn.naive_bayes import MultinomialNB

model = MultinomialNB()
model.fit(X_train, y_train)

Adım 5: Tahmin ve değerlendirme


from sklearn.metrics import accuracy_score

y_pred = model.predict(X_test)

print("Accuracy:", accuracy_score(y_test, y_pred))

İstersen burada:

  1. precision
  2. recall da ekleyebilirsin


Adım 6: Gerçek kullanım

Artık modeli kullanabiliriz:


yeni_mail = ["Bedava iPhone kazandınız"]
yeni_X = vectorizer.transform(yeni_mail)

tahmin = model.predict(yeni_X)

print("Spam" if tahmin[0] == 1 else "Normal")


Bu projede ne öğrendin?

  1. Metin verisi nasıl işlenir
  2. Feature engineering (TF-IDF)
  3. Model eğitme
  4. Model değerlendirme
  5. Gerçek tahmin yapma

Yani aslında küçük ama tam bir AI pipeline kurdun.

Bu proje basit bir örnek ama mantık aynıdır:

  1. Gmail spam filtresi
  2. Sosyal medya yorum analizi
  3. Sahte mesaj tespiti

Hepsi benzer pipeline ile çalışır.

Ertan Dağdelen

Yazan

Ertan Dağdelen

Brain & Youth Information Worker, Author, .Net, Flutter, AJAX, Arduino & Esp32, Pcb, 3D, Galatasaray, Gemini

Bu yazıyı paylaş