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

Dil Algılama

Discuse, bir mesajın dilini belirleyerek üzerinde işlem yapmadan önce doğru moderasyon kurallarını uygulamanızı sağlar. check_language etkinleştirilmiş olarak POST https://api.discuse.com/api/v2/check adresine metin gönderin ve algılanan dil kodunu results.language.language alanından okuyun. İhtiyaç duyduğunuz dilde olmayan içerikleri işaretlemek için expected_language ekleyin.

Dil algılama ne işe yarar?

Dili en baştan algılamak şunları yapmanızı sağlar:

  • Dile özel moderasyon eşiklerini uygulama
  • İçeriği doğru inceleyicilere veya destek ekibine yönlendirme
  • Topluluk dil politikasını zorunlu kılma
  • Akışları dile göre filtreleme veya yerelleştirme

Bir dili nasıl algıları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": "Bonjour, comment allez-vous aujourd'\''hui?"
    },
    "settings": {
      "check_language": true
    }
  }'

Yanıt biçimi

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

Algılanan dil kodu results.language.language alanındadır. expected_language zorlaması açık olduğunda detected ve expected alanları da doldurulur (aşağıya bakın).

Dil sonucu hangi alanları döndürür?

Alan Tür Anlamı
language string Algılanan dil kodu (örn. en, fr, es)
confidence number Algılama güven skoru (0.0–1.0)
expected string expected_language ayarlandığında zorunlu tutulan dil kodu
detected string Algılanan kod (language için takma ad, zorlama sırasında doldurulur)
hit bool Algılanan dil expected ile eşleşmediğinde true
delete_only bool true olduğunda mesaj başka bir ceza uygulanmadan silinmelidir
error string Yalnızca algılama başarısız olduğunda bulunur

Hangi diller destekleniyor?

Discuse, ISO tarzı dil kodları döndürür. Sık algılanan diller şunlardır:

Kod Dil Kod Dil
en İngilizce de Almanca
es İspanyolca fr Fransızca
it İtalyanca pt Portekizce
nl Felemenkçe pl Lehçe
ru Rusça uk Ukraynaca
zh Çince ja Japonca
ko Korece ar Arapça
hi Hintçe tr Türkçe

Sabit bir listeyi kod içine yazmak yerine değeri doğrudan results.language.language alanından okuyun.

Belirli bir dili nasıl zorunlu kılarım?

expected_language değerini ihtiyaç duyduğunuz koda ayarlayın. Algılanan dil farklı olduğunda language.hit değeri true olur ve expected/detected alanları doldurulur:

İstek:

{
  "content": { "text": "Hola, cómo estás?" },
  "settings": {
    "check_language": true,
    "expected_language": "en"
  }
}

Yanıt:

{
  "has_violations": true,
  "message": "Content is not in expected language",
  "results": {
    "hits": true,
    "language": {
      "language": "es",
      "detected": "es",
      "expected": "en",
      "confidence": 0.97,
      "hit": true
    }
  }
}

Kullanım alanları

Yalnızca İngilizce forumlar

async function validatePost(post) {
  const result = 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: post.content },
      settings: { check_language: true, expected_language: 'en' }
    })
  }).then(r => r.json());

  if (result.results.language.hit) {
    return {
      approved: false,
      reason: 'Posts must be in English',
      detected_language: result.results.language.language
    };
  }
  return { approved: true };
}

Çok dilli yönlendirme

async function routeContent(content) {
  const result = await checkLanguage(content.text);
  const language = result.results.language.language;

  const moderatorQueue = {
    en: 'english-moderation',
    es: 'spanish-moderation',
    fr: 'french-moderation',
    de: 'german-moderation',
    default: 'general-moderation'
  };

  const queue = moderatorQueue[language] || moderatorQueue.default;
  await addToQueue(queue, content);
  return { queued: true, language };
}

İçerik moderasyonuyla birlikte kullanma

Dil algılamayı duygu analizi ve spam ile aynı istekte çalıştırın:

{
  "content": {
    "text": "User message in any language"
  },
  "settings": {
    "check_language": true,
    "check_sentiment": true,
    "check_spam": true
  }
}

Algılanan dil daha sonra dile özel duygu analizi eşiklerinizi belirlemek için kullanılabilir:

const LANGUAGE_THRESHOLDS = {
  en: { toxicity: 0.7, profanity: 0.6 },
  de: { toxicity: 0.6, profanity: 0.5 },
  es: { toxicity: 0.7, profanity: 0.7 },
  default: { toxicity: 0.7, profanity: 0.6 }
};

async function moderateContent(text) {
  const result = await checkText(text); // check_language + check_sentiment
  const language = result.results.language.language;
  const thresholds = LANGUAGE_THRESHOLDS[language] || LANGUAGE_THRESHOLDS.default;
  const sentiment = result.results.sentiment;

  if (sentiment.toxicity > thresholds.toxicity) {
    return { action: 'block', reason: 'toxic_content' };
  }
  if (sentiment.profanity > thresholds.profanity) {
    return { action: 'flag', reason: 'profanity' };
  }
  return { action: 'allow' };
}

En iyi uygulamalar

Kısa metinleri hesaba katın

Algılama çok kısa dizelerde daha az güvenilirdir. Minimum uzunluğun altındaysa kontrolü atlayın:

async function smartLanguageCheck(text) {
  if (text.length < 20) {
    return { language: 'unknown', confidence: 0 };
  }
  const result = await checkLanguage(text);
  return result.results.language;
}

Sonuçları önbelleğe alın

async function getLanguageWithCache(text, contentId) {
  const cached = await cache.get(`lang:${contentId}`);
  if (cached) return JSON.parse(cached);

  const result = await checkLanguage(text);
  const language = result.results.language;
  await cache.set(`lang:${contentId}`, JSON.stringify(language), 'EX', 3600);
  return language;
}

Kullanım sınırları

Dil algılama, metin analizi kotanızdan kullanılır:

Plan Aylık Analiz
Basic 1.000
Gold 5.000
Platinum 15.000
Ultimate 30.000

Önbelleğe alınmış yanıtlar kotanızdan düşmez.

Entegrasyon örnekleri

Node.js

const checkLanguage = async (text, expectedLanguage = null) => {
  const settings = { check_language: true };
  if (expectedLanguage) settings.expected_language = expectedLanguage;

  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 })
  });

  return response.json();
};

Python

import os
import requests

def check_language(text, expected_language=None):
    settings = {'check_language': True}
    if expected_language:
        settings['expected_language'] = expected_language

    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': settings}
    )
    return response.json()

Sonraki adımlar

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

İlgili Makaleler

Metin Analizi ve Duygu Tespiti

Metin içeriğinde spam, toksisite, küfür tespit edin ve duygu analizi yapın

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