Skip to main content
Dokümantasyon
ÖĞRENME MERKEZİ

Kapsamlı rehberler, eğitimler ve API dokümantasyonuyla içerik moderasyonunda uzmanlaşın

Hızlı Bağlantılar

Metin Analizi: Duygu Durumu, Spam ve Dil Tek Çağrıda

Discuse metin analizi, tek bir POST https://api.discuse.com/api/v2/check isteğiyle bir mesajı toksiklik, spam ve dil açısından puanlar. Metninizi content.text içinde gönderin, X-API-Key başlığıyla kimlik doğrulaması yapın ve her kontrolün sonucunu results altında okuyun.

Metin endpoint’i neyi kontrol eder?

Tek bir /api/v2/check çağrısı, üç metin kontrolünü aynı anda çalıştırabilir:

  • Duygu durumu: toksiklik, küfür, tehdit ve hakaret puanlamasının yanı sıra negatif/toksik kararı.
  • Spam: tanıtım amaçlı spam, dolandırıcılık ve bot tarafından üretilmiş metin; bir label ve güven puanıyla döndürülür.
  • Dil: algılanan dil kodu; isteğe bağlı olarak beklenen dile göre denetim yapılabilir.

Her kontrol yalnızca etkinleştirildiğinde çalışır; bunu proje ayarlarınızdan ya da istek bazında settings nesnesiyle yapabilirsiniz.

Metin endpoint’ini nasıl çağırırım?

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": {
      "text": "This is an example message to analyze"
    },
    "settings": {
      "check_sentiment": true,
      "check_spam": true,
      "check_language": true
    }
  }'

content.text en fazla 10.000 karakter kabul eder. API anahtarı X-API-Key başlığında veya istek gövdesinde api_key olarak gönderilebilir.

Yanıt

{
  "has_violations": false,
  "cached": false,
  "message": "Content appears safe",
  "results": {
    "hits": false,
    "sentiment": {
      "hit": false,
      "is_negative": false,
      "is_toxic": false,
      "score": 0.04,
      "toxicity": 0.02,
      "toxic": 0.02,
      "profanity": 0.01,
      "threat": 0.00,
      "insult": 0.03
    },
    "spamfinder": {
      "text": "This is an example message to analyze",
      "label": "ham",
      "confidence": 0.12,
      "is_spam": false,
      "hit": false
    },
    "language": {
      "language": "en",
      "confidence": 0.98,
      "hit": false
    }
  },
  "usage": {
    "api_requests_used": 41,
    "api_requests_limit": 5000,
    "api_requests_remaining": 4959
  }
}

has_violations, results.hits değerini yansıtır: etkinleştirilen herhangi bir kontrolün hit bayrağı tetiklendiğinde true olur. processing_time_ms yalnızca proje ayarlarınızda zamanlama etkinleştirilmişse bulunur.

Duygu durumu analizi

Duygu durumu kontrolü hem bir karar hem de 0.0 ile 1.0 arasında boyut bazlı puanlar döndürür.

Alan Tür Anlam
is_negative bool Mesaj negatif okunuyor
is_toxic bool Mesaj toksiklik eşiğini aşıyor
score number Genel duygu durumu/şiddet puanı
toxicity number Toksiklik güveni (0.0–1.0)
toxic number Toksiklik güveni (toxicity için eski takma ad)
profanity number Açık/küfürlü dil güveni
threat number Zarar verme tehdidi güveni
insult number Kişisel saldırı güveni
hit bool Mesaj duygu durumu eşiklerini ihlal ettiğinde true
message string İsteğe bağlı açıklama

Duygu durumu puanını nasıl yorumlarım?

Puan, modelin ilgili boyutun geçerli olduğuna dair güvenini ifade eder:

  • 0.0 – 0.3: düşük, genellikle güvenli.
  • 0.3 – 0.6: orta, inceleme gerektirebilir.
  • 0.6 – 0.8: yüksek, büyük olasılıkla sorunlu.
  • 0.8 – 1.0: çok yüksek, neredeyse kesinlikle ihlal.

Örnek: toksik içerik

İstek:

{
  "content": {
    "text": "You're the worst person I've ever met. I hate everything about you."
  },
  "settings": { "check_sentiment": true }
}

Yanıt:

{
  "has_violations": true,
  "results": {
    "hits": true,
    "sentiment": {
      "hit": true,
      "is_negative": true,
      "is_toxic": true,
      "score": 0.91,
      "toxicity": 0.89,
      "toxic": 0.89,
      "profanity": 0.15,
      "threat": 0.22,
      "insult": 0.95
    }
  }
}

Spam tespiti

Spam kontrolü metni sınıflandırır ve güven puanıyla birlikte tek bir label döndürür. Anahtar kelime engelleme listelerinden kaçan kalıpları yakalar: tanıtım amaçlı spam, dolandırıcılık ve kimlik avı ile bot tarafından üretilmiş metin.

Örnek: spam içerik

İstek:

{
  "content": {
    "text": "CONGRATULATIONS! You've won $10,000! Click here to claim: www.fake-prize.com"
  },
  "settings": { "check_spam": true }
}

Yanıt:

{
  "has_violations": true,
  "results": {
    "hits": true,
    "spamfinder": {
      "text": "CONGRATULATIONS! You've won $10,000! Click here to claim: www.fake-prize.com",
      "label": "spam",
      "confidence": 0.97,
      "is_spam": true,
      "hit": true
    }
  }
}

is_spam ham model kararıdır (model metni spam olarak etiketlemiştir). hit eşik duyarlı karardır: yalnızca is_spam true olduğunda ve confidence projenizin spam eşiğini geçtiğinde true olur. Moderasyonu is_spam yerine hit değerine göre yapın. Ayrıntılar için Spam Tespiti kılavuzuna bakın.

Dil tespiti

content.text dil kodunu algılamak için check_language değerini ayarlayın. Sonuç results.language.language içindedir (örneğin "en", "fr", "es").

İstek:

{
  "content": { "text": "Bonjour, comment allez-vous aujourd'hui?" },
  "settings": { "check_language": true }
}

Yanıt:

{
  "results": {
    "language": {
      "language": "fr",
      "confidence": 0.99,
      "hit": false
    }
  }
}

Beklenen dilinizde olmayan içeriği işaretlemek için expected_language ayarlayın. Algılanan dil farklı olduğunda language.hit true olur ve expected/detected alanları doldurulur:

{
  "content": { "text": "Hola, cómo estás?" },
  "settings": { "check_language": true, "expected_language": "en" }
}
{
  "results": {
    "language": {
      "language": "es",
      "detected": "es",
      "expected": "en",
      "confidence": 0.95,
      "hit": true
    }
  }
}

Tam dil listesi ve uygulama kalıpları için Dil Tespiti bölümüne bakın.

Hangi kontrolleri açıp kapatabilirim?

İsteğe bağlı settings nesnesi, tek bir istek için proje varsayılanlarınızı geçersiz kılar. Metinle ilgili seçenekler şunlardır:

Ayar Tür Etki
check_sentiment bool Duygu durumu analizini çalıştırır
check_spam bool Spam tespitini çalıştırır
check_language bool Dil tespitini çalıştırır
check_badwords bool Yasaklı kelimeler engelleme listesini çalıştırır
expected_language string Uygulanacak dil kodu (örn. "en")
{
  "content": { "text": "Your message here" },
  "settings": {
    "check_sentiment": true,
    "check_spam": true,
    "check_language": true,
    "expected_language": "en"
  }
}

Kullanım limitleri

Duygu durumu, spam ve dil tespiti, plana bağlı duygu durumu analizi kotasından kullanır:

Plan Aylık Duygu Durumu Analizi
Basic 1,000
Gold 5,000
Platinum 15,000
Ultimate 30,000

Önbelleğe alınmış yanıtlar kotanızdan düşmez. Her yanıttaki usage nesnesi api_requests_used, api_requests_limit ve api_requests_remaining değerlerini bildirir.

En iyi uygulamalar

Eşikleri platforma göre ayarlayın

Farklı kitleler için farklı duygu durumu eşikleri uygulayın:

const THRESHOLDS = {
  kids:    { toxicity: 0.3, profanity: 0.2, threat: 0.2, insult: 0.3 },
  general: { toxicity: 0.5, profanity: 0.5, threat: 0.4, insult: 0.5 },
  adult:   { toxicity: 0.7, profanity: 0.8, threat: 0.5, insult: 0.7 }
};

Bağlamı hesaba katın

Klinik, gazetecilik ve kurgu içerikleri, toksiklik ve küfür puanlarını meşru biçimde tetikleyebilir. Sınırda kalan durumlar için otomatik puanlamayı insan incelemesiyle birleştirin:

const sentiment = result.results.sentiment;
if (sentiment.toxicity > 0.9) {
  await removeContent(contentId);       // high confidence: auto-remove
} else if (sentiment.toxicity > 0.5) {
  await queueForReview(contentId);      // borderline: human review
} else {
  await approveContent(contentId);
}

Entegrasyon örnekleri

JavaScript

async function analyzeText(text) {
  const response = await fetch('https://api.discuse.com/api/v2/check', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({
      content: { text },
      settings: { check_sentiment: true, check_spam: true, check_language: true }
    })
  });

  return response.json();
}

const result = await analyzeText('Hello, how are you?');
console.log(result.has_violations); // false

Python

import os
import requests

def analyze_text(text):
    response = requests.post(
        'https://api.discuse.com/api/v2/check',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={
            'content': {'text': text},
            'settings': {
                'check_sentiment': True,
                'check_spam': True,
                'check_language': True
            }
        }
    )
    return response.json()

result = analyze_text('Hello, how are you?')
print(result['has_violations'])  # False

Metin analizini uygulamaya hazır mısınız? Adım adım kurulum için Hızlı Başlangıç Kılavuzu bölümüne bakın.

Discuse Ekibi tarafından yazıldı · Son güncelleme June 2026

İlgili Makaleler

Görsel NSFW Tespiti

Uygunsuz görselleri ve yetişkin içerikleri otomatik olarak tespit edip filtreleyin

Spam Tespiti

Metin ve mesajlar için AI destekli spam filtreleme

Dosya Antivirüs Taraması

Platformunuzu kötü amaçlı yazılımlardan, virüslerden ve zararlı dosyalardan koruyun