Müşteri Yorumları Bir Bilmece Gibi
Bir müşterinin “Bu ürünü almayı asla düşünmezdim ama iyi ki almışım!” yorumu ne kadar olumlu? Ya da “Beklentilerimi karşılamadı ama fiyatı uygundu” yorumu ne kadar olumsuz?”
“Elimizde binlerce yorum olduğunda, bunları tek tek analiz etmek bir insanın altından kalkabileceği bir şey değil.
Neden Bu Sorunu Çözmeliyiz?
Olumlu bir yorumu yanlışlıkla olumsuz olarak yorumlarsan müşterin kendini anlaşılmamış hissedebilir. Bu konuda yanlış bir adım atarsan, müşteri sana ‘Sen benim kim olduğumu biliyor musun?’ dercesine soğuyabilir. Ya da tam tersi: Şikayet olarak algılamadığın bir yorum, başka müşterilere kötü bir izlenim bırakabilir.
Sonuç? Marka sadakati azalır, gelirler düşer ve rakiplerin sana bir adım daha yaklaşır.
Yapay Zekâ ile Duyguları Anlamak
Sentiment analizi, yapay zekâ tabanlı bir doğal dil işleme (NLP) yöntemiyle yorumları analiz eder ve bunların olumlu, olumsuz ya da nötr olup olmadığını belirler. Bunu uygulamak için aşağıdaki adımları takip edelim:
1. Veri Toplama
E-ticaret sitendeki müşteri yorumlarını bir veritabanında saklamalıyız.
CREATE TABLE customer_reviews (
id INT AUTO_INCREMENT PRIMARY KEY,
product_id INT NOT NULL,
review_text TEXT NOT NULL,
sentiment_label VARCHAR(10), -- 'positive', 'negative', 'neutral'
year INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. Python ile Sentiment Analizi Modeli
Python’da bir NLP modeli oluşturarak yorumları analiz edebiliriz. Eğer hazır bir Türkçe sentiment veri setine ulaşmak istersen Kaggle gibi platformları ziyaret edebilir ya da e-ticaret sitendeki yorumları manuel olarak etiketleyerek kendi veri setini oluşturabilirsin. Bu, dilin bağlamına uygun sonuçlar almanda yardımcı olacaktır.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
import pickle
# Veri setini yükle (Eğitim verisi olarak hazır bir sentiment veri seti kullanabilirsin)
data = pd.read_csv('sentiment_data.csv')
# Özellikler ve hedef değişken
X = data['review_text']
y = data['sentiment']
# Veriyi böl
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Metin verisini sayısal verilere dönüştür
vectorizer = CountVectorizer()
X_train_vec = vectorizer.fit_transform(X_train)
# Modeli eğit
model = MultinomialNB()
model.fit(X_train_vec, y_train)
# Modeli ve vektörizeri kaydet
with open('sentiment_model.pkl', 'wb') as model_file:
pickle.dump(model, model_file)
with open('vectorizer.pkl', 'wb') as vec_file:
pickle.dump(vectorizer, vec_file)
Modeli Güncellemek
Eğer yeni yorumlar geldikçe modelini güncellemek istersek, aşağıdaki gibi bir iş akışı oluşturabiliriz:
- Yeni yorumları topla ve etiketle (manuel ya da yarı otomatik yöntemlerle).
- Yeni veriyi mevcut veri setine ekle.
- Modeli tekrar eğit ve güncelle.
def update_model(new_data):
global model, vectorizer
# Yeni veriyi ekle
data = pd.read_csv('sentiment_data.csv')
updated_data = pd.concat([data, new_data])
# Yeniden eğit
X = updated_data['review_text']
y = updated_data['sentiment']
X_vec = vectorizer.fit_transform(X)
model.fit(X_vec, y)
# Güncellenmiş modeli kaydet
with open('sentiment_model.pkl', 'wb') as model_file:
pickle.dump(model, model_file)
3. Python API’sı ile Sentiment Analizi
from flask import Flask, request, jsonify
import pickle
app = Flask(__name__)
# Model ve vektörizeri yükle
with open('sentiment_model.pkl', 'rb') as model_file:
model = pickle.load(model_file)
with open('vectorizer.pkl', 'rb') as vec_file:
vectorizer = pickle.load(vec_file)
@app.route('/analyze', methods=['POST'])
def analyze():
data = request.json
review_text = data['review_text']
# Yorum metnini vektörize et
review_vec = vectorizer.transform([review_text])
# Tahmin yap
prediction = model.predict(review_vec)[0]
return jsonify({"sentiment": prediction})
if __name__ == '__main__':
app.run(debug=True)
4. PHP ile Python API’sine Bağlanma
class SentimentAnalyzer {
public function analyze($reviewText) {
$url = 'http://127.0.0.1:5000/analyze';
$data = json_encode(['review_text' => $reviewText]);
$options = [
'http' => [
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => $data,
],
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return json_decode($result, true);
}
}
// Kullanım Örneği
$analyzer = new SentimentAnalyzer();
$sentiment = $analyzer->analyze("Bu ürün harika, çok memnun kaldım!");
echo "Duygu: " . $sentiment['sentiment'];
Bu sistem sayesinde yorumları etkili bir şekilde analiz edebilir, müşteri geri bildirimlerini anlamlı hale getirerek stratejik kararlar alabilirsin. Yapay zeka ile müşteri duygularını anlamak artık senin elinde!
Yorum yapar ve paylaşırsan beni mutlu edersin!