← Back to list

Duygu Analizi (Sentiment Analysis): .NET ve Yerel LLM’ler ile Metinlerin Gizli Anlamını Çözmek

Her gün uygulamalarımıza, e-ticaret sitelerimize veya sosyal medya hesaplarımıza binlerce satır geri bildirim akıyor. “Kargo hızlıydı ama…

Yiğit Ataman · 2026-05-24 12:29 · 0 claps · 2.4 min read
#dotnet #csharp #sentiment-analysis #llm #ai
Open on Medium ↗
Wiki topics: LLM · Large Language Models AI · AI · General

Duygu Analizi (Sentiment Analysis): .NET ve Yerel LLM’ler ile Metinlerin Gizli Anlamını Çözmek

Her gün uygulamalarımıza, e-ticaret sitelerimize veya sosyal medya hesaplarımıza binlerce satır geri bildirim akıyor. “Kargo hızlıydı ama ürünün paketlemesi berbattı,” gibi bir yorumu düşünün. Bu yorum olumlu mu, olumsuz mu, yoksa nötr mü? İşte tam bu noktada Duygu Analizi (Sentiment Analysis) devreye giriyor.

Yazılım mimarilerinde metin madenciliğinin en popüler alanlarından biri olan Duygu Analizi, temel olarak bir metnin barındırdığı polariteyi (duygu durumunu) algoritmik olarak sınıflandırma işlemidir. Geleneksel yöntemlerde bu işlem için kelime sözlükleri (lexicon) veya temel makine öğrenimi (Naive Bayes, SVM) modelleri kullanılıyordu. Ancak Üretken Yapay Zeka (Generative AI) ve Büyük Dil Modellerinin (LLM) yükselişiyle birlikte oyunun kuralları tamamen değişti.

Neden Kapalı API’ler Yerine Açık Kaynaklı Modeller?

Kurumsal projelerde duygu analizi entegrasyonu yaparken akla ilk gelen çözüm genellikle popüler, kapalı kaynaklı yapay zeka API’lerini kullanmaktır. Ancak bu yaklaşım iki büyük bariyerle karşılaşır:

  1. Veri Gizliliği (Privacy): Müşterilerinize ait hassas yorumları, bilet (ticket) içeriklerini veya anket verilerini dışarıdaki bir sunucuya göndermek kurumsal veri politikaları ve KVKK/GDPR gibi regülasyonlar açısından risk oluşturabilir.
  2. Maliyet Kontrolü: Yüksek hacimli metin analizlerinde token başına ücretlendirme modelleri, projenin işletme maliyetlerini (OPEX) tahmin edilemez boyutlara taşıyabilir.

Bu nedenle, Ollama gibi araçlar aracılığıyla yerel ortamda (on-premise) çalıştırılabilen açık kaynaklı modeller (Llama 3, Mistral vb.) harika birer alternatiftir. Maliyetleri sıfıra indirirken, kurumsal verilerinizin şirket ağından çıkmamasını sağlarsınız.

.NET Ekosisteminde Mimarinin Kurulması

Modern bir mikroservis mimarisinde, duygu analizi yapan servisin izole ve ölçeklenebilir olması beklenir. C# ve .NET kullanarak Ollama üzerinde koşan yerel bir modele entegre olmak oldukça basittir.

Bunu bir arka plan servisi (Background Worker) veya doğrudan bir REST API ucu olarak tasarlayabilirsiniz. Temel akış şu şekildedir:

  • Veri Tüketimi: RabbitMQ veya Kafka üzerinden gelen yeni bir kullanıcı yorumu dinlenir.
  • İstem (Prompt) Hazırlığı: Yorum, sisteme özel olarak hazırlanmış bir prompt ile birleştirilir.
  • Model Çıkarımı (Inference): HTTP Client veya yerel SDK’ler aracılığıyla Ollama API’sine istek atılır.
  • Yapılandırılmış Çıktı (Structured Output): Modelden gelen yanıt JSON formatına parse edilerek veritabanına işlenir.

Örnek bir C# HTTP İsteği Yaklaşımı:

using System.Text.Json;
using System.Text;

// Ollama'nın yerel API ucu
string ollamaEndpoint = "http://localhost:11434/api/generate";
var payload = new
{
    model = "mistral",
    prompt = "Aşağıdaki müşteri yorumunun duygu durumunu analiz et ve sadece JSON formatında dön: { \"duygu\": \"olumlu/olumsuz/nötr\", \"skor\": 1-10 arası }. Yorum: 'Uygulamanın arayüzü harika ama sayfa geçişleri çok yavaş.'",
    stream = false
};
var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
using var client = new HttpClient();
var response = await client.PostAsync(ollamaEndpoint, content);
var result = await response.Content.ReadAsStringAsync();
// Gelen JSON sonucunu Deserialize edip Clean Architecture içindeki UseCase'lerinize aktarabilirsiniz.

İstem Mühendisliği (Prompt Engineering) ile Kesinliği Artırmak

Duygu analizinin kalitesi, sadece kullandığınız modele değil, o modele soruyu nasıl sorduğunuza da bağlıdır. Modelin halüsinasyon görmesini (hallucination) engellemek ve karmaşık yorumlarda (örneğin sarkazm içerenlerde) doğru sonucu almak için ileri düzey istem mühendisliği teknikleri uygulanmalıdır.

  • Step-Back Prompting: Modele doğrudan “Bu metin olumlu mu?” demek yerine, önce metnin ana fikrini özetlemesini, ardından bu özet üzerinden duygu analizi yapmasını isteyerek (adım adım düşünme) mantıksal hataları azaltabilirsiniz.
  • Sıfırıncı veya Birkaç Atışlı (Zero-Shot / Few-Shot) Öğrenme: Promptunuzun içine sisteminizin beklediği birkaç örnek senaryo ekleyerek, C# tarafında deserialize etmesi çok daha güvenilir olan, katı kurallara bağlı JSON çıktıları almayı garanti edebilirsiniz.

Özetle

Duygu Analizi, yazılımlarınızı “kullanıcısını anlayan” zeki sistemlere dönüştürmenin ilk adımıdır. Günümüzde .NET gücü ile açık kaynaklı yerel modellerin esnekliğini birleştirdiğinizde; verisi dışarı sızmayan, token maliyeti yaratmayan ve son derece isabetli çalışan modern yapay zeka entegrasyonları inşa etmek hiç olmadığı kadar kolay.

Uygulamalarınızda veri odaklı kararlar alırken, arka planda çalışan yapay zeka modellerinizin tam kontrolünü elinizde tutmak, modern yazılım mimarisinin olmazsa olmazlarından biri haline gelmektedir.


메타데이터
post_id
3da897d6bdf4
slug
duygu-analizi-sentiment-analysis-net-ve-yerel-llmler-ile-metinlerin-gizli-anlamını-çözmek-3da897d6bdf4
url
https://medium.com/@yigitataman1/duygu-analizi-sentiment-analysis-net-ve-yerel-llmler-ile-metinlerin-gizli-anlam%C4%B1n%C4%B1-%C3%A7%C3%B6zmek-3da897d6bdf4
canonical_url
https://medium.com/@yigitataman1/duygu-analizi-sentiment-analysis-net-ve-yerel-llmler-ile-metinlerin-gizli-anlam%C4%B1n%C4%B1-%C3%A7%C3%B6zmek-3da897d6bdf4
author_url
https://medium.com/@yigitataman1
status
ok
fetched_at
2026-06-09 15:37:30