Blog / E-Spor / Sohbet Loglarından 'Tilt' Tespiti: 100.000 Mesajla NLP Modelleriyle Maç İçi Moral Değişimini Ölçme Analizi
Sohbet Loglarından 'Tilt' Tespiti: 100.000 Mesajla NLP Modelleriyle Maç İçi Moral Değişimini Ölçme Analizi
E-Spor

Sohbet Loglarından 'Tilt' Tespiti: 100.000 Mesajla NLP Modelleriyle Maç İçi Moral Değişimini Ölçme Analizi

Giriş

Oyuncu sohbet logları, maç içi dinamiklerin ve takım psikolojisinin en doğrudan göstergilerindendir. Bu yazıda 100.000 sohbet mesajı üzerinde gerçekleştirilen bir NLP çalışmasını örnek alarak, "tilt" olarak adlandırılan moral bozulmalarını nasıl tespit ettiğimizi, kullandığımız metrikleri, model mimarilerini ve pratik müdahale önerilerini derinlemesine ele alacağım.

Çalışmanın Amacı ve Kapsamı

Amacımız, sohbet verilerinden maç içi moral değişimlerini nicel olarak çıkarmak ve tilt dönemlerini otomatik tespit edebilen bir boru hattı kurmaktır. Bu kapsamda şunları hedefledik:

  • Mesaj bazlı duygu ve davranış işaretçilerini çıkarmak,
  • Zamana bağlı pencereler içinde moral trendlerini modellemek,
  • Tilt oluştuğunda yüksek doğrulukla uyarı vermek veya otomatik müdahale önerileri üretmek,
  • Yöntemin sınırlarını ve etik boyutlarını açıkça ortaya koymak.

Veri ve Ön İşleme

Veri seti: 100.000 satır sohbet mesajı. Her satırda zaman damgası, oyuncu kimliği (anonimleştirilmiş), maç kimliği ve mesaj metni vardı. Ek olarak maç sonucu ve skor bilgileri ile eşleştirme yapıldı.

Temel ön işleme adımları

  • Anonimleştirme: Kişisel bilgilerin kaldırılması ve kimliklerin rastgele IDlerle değiştirilmesi.
  • Temizleme: URL, özel tokenler, excessive whitespace kaldırma.
  • Emojiler ve emoticonlar: Bunlar duygu taşıyıcı olarak ayrı tokenlara dönüştürüldü (ör. :rage:, :sad:).
  • Uzun tekrar karakterleri: "noooo" veya "gggg" gibi formlar normalize edilip anlamlı tokenlara indirildi.
  • Zaman penceresi oluşturma: Mesajlar maç içi 30 saniye, 1 dakika ve 5 dakika pencerelerine gruplanarak zaman serileri oluşturuldu.

Özellik Mühendisliği

Tilt tespiti için tek başına basit duygu etiketleri yetersizdir. Bu yüzden çok katmanlı özellik seti kullandık:

  • Mesaj düzeyi özellikleri: duygu skorları (pozitif-negatif; lexicon tabanlı ve model tabanlı), küfür/şaşkınlık token sayıları, soru işareti/ünlem sayıları, mesaj uzunluğu.
  • Kullanıcı düzeyi davranışlar: bir oyuncunun son 5 mesajındaki negatiflik oranı, cevap verme gecikmesi, ani büyük harf kullanımı artışı.
  • Zamana bağlı özetler: Hareketli ortalamalar, değişim oranları (delta) ve trend eğimleri—örneğin son 3 dakikadaki negatiflik oranının son 30 saniyeye oranı.
  • Pragmatik işaretçiler: sarkazm/snark tespitine yönelik regex ve model tabanlı işaretler; bağlamda yıkıcı dil kullanımı.

Model Seçimi ve Eğitim

Farklı seviyelerde modeller denedik:

  1. Logistic Regression / Random Forest: Hızlı prototip için öznitelik tabanlı modeller. Baseline olarak kullanıldı.
  2. LSTM / Temporal CNN: Zaman serisi pencerelerini yakalamak ve kısa dönemli bağımlılıkları modellemek için.
  3. Transformer Tabanlı Modellere İnce Ayar: Mesaj bağlamını daha iyi kavramak için önceden eğitilmiş bir Türkçe/çok dilli transformera ince ayar yaptık; zaman penceresini modellemek için sliding-context stratejisi kullandık.

Eğitimde sınıf dengesizliğini gidermek için ağırlıklı loss ve SMOTE tipi örnekleme yöntemleri uygulandı. Cross-validation yerine maç bazlı holdout strateji izledik; böylece aynı maçtaki örneklerin eğitim ve testte karışmaması sağlandı.

Etiketleme: 'Tilt' Tanımı ve Zorlukları

Tilt'i tanımlamak zordur çünkü hem bilişsel hem duygusal öğeler içerir. Biz uygulamada şu pragmatik kriterleri kullandık:

  • Bir oyuncunun negatiflik skorunun sürekli artması ve agresif dil kullanımındaki belirgin yükseliş,
  • Süre bazlı etkiler: negatif trendin en az 2 dakika boyunca devam etmesi,
  • Aynı oyuncunun performansında paralel düşüş (ör. ölüm sayısında artış) veya takım iletişiminin bozulması.

Bu kriterler insan etiketleyicilerle test edildi. %80 annotator agreement üzerinde ortak tanım sağlandı.

Performans ve Bulgular

Model karşılaştırması (özet):

  • Baseline Logistic Regression: Accuracy ~0.69, F1 ~0.62.
  • Temporal LSTM: Accuracy ~0.74, F1 ~0.70; daha iyi zaman bağımlılığını yakaladı.
  • Transformer ince ayarlı: Accuracy ~0.78, F1 ~0.74, ROC-AUC ~0.83. En iyi genel sonuçları verdi fakat hesaplama maliyeti yüksekti.

Öne çıkan gözlemler:

  • Pencere boyutu çok küçükse (30s) yanlış pozitif artıyor; çok büyükse tilt erken tespit edilemiyor. 60-120s arası orta yol olarak iyi sonuç verdi.
  • Emojiler ve küfürler güçlü sinyal veriyor ancak kültürel kullanımlar modelin öğrenmesini yanıltabiliyor; bu yüzden oyuncu-bağlamı önemli.
  • Model hatalarının büyük kısmı sarkazm ve iç şaka içeren ifadelerden kaynaklandı.

İstatistiksel Doğrulama

Tilt etiketi ile maç kaybı/başarı arasındaki ilişkiyi değerlendirmek için chi-square testleri ve logistic regresyon analizi yapıldı. Tilt geçiren oyuncuların bulunduğu maçların kaybetme olasılığı anlamlı şekilde yüksekti (p < 0.01; odds ratio ~1.6). Bu, tilt tespitinin operasyonel önemi olduğunu gösterir.

Pratik Uygulama Önerileri

Model pratikte şöyle kullanılabilir:

  • Gerçek zamanlı uyarılar: Bir oyuncu tilt sinyalleri gösterdiğinde takım içi yumuşatıcı mesaj önerileri veya sistemsel kısa süreli sessizleştirme seçenekleri sunmak.
  • Müdahale otomasyonu: Eğer tilt yüksek ve takımın morali bozuluyorsa otomatik öneri olarak oyunculara mola hatırlatması veya sakinleştirici ipuçları göstermek.
  • Analitik dashboard: Turnuva organizatörleri için tilt oranları, en problemli haritalar ve saat dilimleri gibi metrikleri sunmak.

Etik, Gizlilik ve Sınırlamalar

Bu tür uygulamalar güçlü etik sorumluluklar getirir:

  • Rıza ve şeffaflık: Kullanıcılardan veri toplarken bilgilendirme ve onay şart. Kullanıcılar sohbetlerinin analiz edildiğini ve nasıl kullanılacağını bilmelidir.
  • Yanlılık riski: Dil, aksan ve mizah biçimleri modelin kararlarını etkiler; model belirli gruplara karşı önyargılı sonuçlar verebilir.
  • Yanlış pozitifler: Gereksiz müdahaleler oyunu bozabilir. Bu yüzden müdahaleler kademeli ve geri bildirime açık olmalıdır.

Teknik İpuçları ve Püf Noktaları

  • Türkçe için morfolojik zenginlik: lemmatizasyon ve subword tokenizasyonu birlikte kullanmak fayda sağlar.
  • Emo-lexicon oluşturun: Emojilerin maç kültüründeki anlamları projeye özgü olarak etiketlenmeli.
  • Zaman serisi modellerinde sezonluk etkiler: Maçın başındaki heyecan ile geç saatlerdeki yorgunluk farklı tilt profilleri üretebilir.
  • Model izlenebilirliği: Özellikle transformerlarda kararların hangi tokenlara dayandığını açıklayan attention görselleştirmeleri kullanın.

Sonuç

100.000 mesajlık çalışma, sohbet loglarından tilt tespitinin pratik ve uygulanabilir olduğunu gösteriyor. Transformer temelli modeller en iyi performansı verdi ancak maliyet ve etik kaygılar dikkate alınmalı. En başarı yöntemler, zaman bağlı özellikleri, davranışsal işaretçileri ve bağlamsal modellemeyi birleştiriyor. Uygulamada ise kademeli müdahaleler, şeffaf kullanıcı bilgilendirmesi ve devam eden model izleme şart.

Özetle, teknik doğruluk ile oyuncu deneyimini koruma arasında denge kurmak, tilt tespiti projelerinin başarısının anahtarıdır.