Türkçe küfür ve hakaret tespiti

Türkçe küfür ve hakaret tespiti: yorumları ve mesajları tek API çağrısıyla denetleyin.

Detectivision, on dildeki metinlerde küfrü, hakareti, nefret söylemini, ırkçılığı, cinsiyetçiliği ve cinsel içeriği ayrı bayraklarla tespit eden bir API’dir. Yorumu ya da mesajı yazıldığı gibi gönderirsiniz; cevap, kalkan her bayrağı ve güven puanını söyler. API metni bir bütün olarak değerlendirir; kelime listesi tutmanız gerekmez. Ne yapılacağına siz karar verirsiniz.

Ne bulur

Hangi bayrak neyi bulur?

Bir mesajda küfür, hakaret, nefret söylemi ve cinsel içerik bir arada olabilir; her birinin ayrı bayrağı vardır. Tablo, Detectivision’ın bu bayrakları nasıl tanımladığını gösterir. Herkese açık durum uç noktası (/api/v1/status) 16 Ekim 2026’da bu bayrakların hepsini “available” olarak listeliyordu. Hesabınızın bayrakları planınıza bağlıdır: hangilerini gönderebileceğinizi GET /api/v1/flags söyler.

BayrakNeyi kapsarNeyi kapsamaz
küfür · profanityİngilizce, İspanyolca, Portekizce, Fransızca, Almanca, İtalyanca, Türkçe, Arapça, Rusça ya da Hintçe küfür ve kaba argo; arkadaşça söylense de, kimseye yönelmese de.Küfür sayılmayan kaba sözler: “salak”, “aptal”, “mal” gibi kelimeler hakarettir, küfür değildir.
hakaret · insultTek bir kişiye ya da okuyana yönelik saldırı: ad takma, aşağılama, birine küfrederek saldırma.Bütün bir gruba dair sözler (bunlar nefret söylemi, ırkçılık ya da cinsiyetçiliktir), ad takmadan yapılan eleştiri ve kimseye yönelmeyen küfür.
nefret söylemi · hateIrk, etnik köken, milliyet, din, cinsiyet, cinsel yönelim ya da engellilik nedeniyle bir gruba düşmanlık, aşağılama ya da olumsuz genelleme; üstü kapalı olanlar da.Bir gruptan tarafsız ya da olumlu söz eden metinler, örneğin haberler. Tek bir kişiye yönelik küfür ise hakarettir.
ırkçılık · racismIrk, etnik köken ya da milliyet üzerinden aşağılama, kalıp yargı ve genelleme.Bir ülkeden ya da milletten tarafsız söz eden haber, seyahat ya da yardım metinleri.
cinsiyetçilik · sexismBir cinsiyeti aşağı gören, belli rollere sokan ya da kalıba koyan sözler, gündelik ya da üstü kapalı olanlar da.Kadınlardan ya da erkeklerden tarafsız ya da destekleyici biçimde söz eden metinler.
cinsel içerik · sexualCinsel eylemi ya da çıplaklığı anlatan veya isteyen metinler; cinsel taciz ve teklif.Yalnızca sövmek için kullanılan cinsel kökenli küfürler (bunlar küfürdür), cinsel olmayan romantik metinler, tıbbi ve eğitici anlatımlar.

Bir mesaj birden çok bayrak kaldırabilir: birine küfrederek saldırmak hem küfür hem hakarettir. Metin moderasyonunun iki bayrağı daha var: kendine zarar (self_harm) ve kötü alışkanlıklar (bad_habits); sekiz bayrağın tamamı metin moderasyonu sayfasında. Tanımlar her bayrağın neyi hedeflediğini söyler; ölçülmüş bir sonuç değildir. Bir kararı otomatiğe bağlamadan önce kendi platformunuzdan mesajları paneldeki Playground’da deneyin.

Küfür mü, hakaret mi?

Küfür mü, hakaret mi? Tanımlara göre altı durum

Küfür bir söz türüdür; hakaret ise birine yönelen bir saldırıdır. İkisi ayrı bayrak olduğu için kurallarınız onları ayrı ele alabilir: arkadaşlar arasındaki küfürlü şakalaşmaya izin verip bir kullanıcıyı aşağılayan mesajı bekletebilirsiniz.

DurumÖrnekTanıma göre
Küfür olmadan ad takma“Sen tam bir salaksın.”hakaret; küfür değil
Kimseye yönelmeyen küfür“Bu güncelleme bok gibi olmuş, düzeltin artık.”küfür; hakaret değil
Arkadaşlar arasında küfürlü selamlaşmaSamimi bir “naber”in içinde geçen bir küfürküfür; hakaret değil
Okuyana küfrederek saldırmaKarşıdakine yöneltilmiş bir küfürküfür ve hakaret
Bir grubu genelleyerek aşağılama“Kadınların yeri evdir.”cinsiyetçilik (nefret söylemi de kalkabilir); hakaret değil
Ad takmadan sert eleştiri“Kargo çok geç geldi, ürün de berbat.”hiçbiri

Örnekler bayrak tanımlarını anlatmak için yazıldı; API’den alınmış cevaplar değildir. Ağır küfürler burada bilerek açık yazılmadı. Sınırdaki mesajları bir moderatöre gönderin.

Neden kelime listesi değil

Kelime listesiyle çalışan küfür filtresi Türkçede neden yetmez?

Türkçe eklemeli bir dildir: bir kök, eklerle onlarca biçime girer. Yalnızca tam kelimeleri arayan bir liste küfrün ekli biçimlerini kaçırır; kelimenin içinde arayan bir liste ise gündelik kelimeleri engeller. Türkçe karakter kullanılmadan yazılan metinler ve Türkçenin büyük-küçük harf kurallarını bilmeyen kod işi daha da zorlaştırır. Sıra sütunu, kelimenin film ve dizi altyazılarından derlenmiş 50.000 kelimelik bir Türkçe sıklık listesinde kaçıncı olduğunu gösterir: 11, en sık geçen 11. kelime demektir.

KelimeNe demekSıraListe neden takılır
ama · tamam · zamanfakat · peki · vakit11 · 28 · 37Üçü de iki harfli kaba bir kelimeyi içerir. Kelimenin içinde arayan bir liste, en sık geçen 40 kelimeden bu üçünü engeller.
amcababanın erkek kardeşi1.378Aynı iki harfle başlar.
götür · götürmekalıp bir yere iletmek1.315 · 3.132Kaba bir kelimeyle başlar.
sikkeeski madeni para45.307Kaba bir fiilin üç harfli köküyle başlar.
mal · Malatyaeşya, servet · bir il1.443 · listede yok“Mal” argoda “aptal” anlamında da kullanılır: kelimenin kendisi iki anlamlıdır ve hangisi olduğunu yalnızca cümle söyler. Malatya aynı harflerle başlar.
başlayarak · arayarak · ağlayarak · okuyarak-(y)arak ekiyle kurulan zarf-fiiller15.739 · 18.773 · 20.172 · 24.368Ünlüyle biten köklerde araya giren “y” ile birlikte ek, argo bir kelimenin beş harfini oluşturur. Listede bu beş harfi içeren 18 kelimenin 17’si böyle zarf-fiildir; yalnızca biri argo kelimenin kendisidir.
sık · sıkı · sıkıcı · sıkıntı · sıkıldımseyrek olmayan · gevşek olmayan · can sıkan · dert · canım sıkıldı1.020 · 1.044 · 1.585 · 3.316 · 4.842Türkçe karakter kullanılmadan yazılınca kaba bir fiilin köküyle başlar. Listede “sık” ile başlayan 71 kelime var; “sıkıldım” bu biçimde o fiilin bir çekimiyle aynı yazılır.
SIKILDIMbüyük harfle “sıkıldım”—Türkçenin harf kurallarını bilmeyen kod bunu küçük harfe çevirince “sikildim” olur. Önce büyütüp sonra küçülten kod da “sıkıldım”ı “sikildim” yapar.

Sıralar ve sayımlar FrequencyWords 2018 Türkçe listesinden (OpenSubtitles’tan derlenmiş, CC BY-SA 4.0), 16 Ekim 2026’da indirilip hesaplandı. Büyük-küçük harf denemesi aynı gün Python 3.9 ve Node.js 22’de yapıldı: Türkçe yerel ayar verilmeden “SIKILDIM” küçük harfe çevrilince “sikildim” oluyor. “İSTANBUL” küçültülünce de “istanbul” ile eşleşmiyor: i’nin üstüne ayrı bir nokta işareti eklenir ve sekiz harfli kelime dokuz karakter olur. Node.js’te toLocaleLowerCase("tr-TR") ikisini de doğru çeviriyor. Detectivision’da kelime listesi tutmanız gerekmez; bayraklar mesajı bir bütün olarak değerlendirir. Bu kelimelerin geçtiği kendi cümlelerinizi Playground’da deneyip sonucu görün.

Kodda

Bir yorumu denetleyin

İstek
curl https://api.detectivision.ai/api/v1/moderation \
  -H "Api-Key: $DETECTIVISION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "text_moderation",
    "input": "Satıcı tam bir salak, kargo da hâlâ gelmedi.",
    "mode": "detect",
    "flags": [
      "profanity",
      "insult",
      "hate",
      "racism",
      "sexism",
      "sexual"
    ],
    "metadata": { "commentId": "c_48213" }
  }'
Örnek cevap (biçim API referansından; değerler örnek amaçlı)
{
  "id": 7342,
  "type": "text_moderation",
  "mode": "detect",
  "status": "completed",
  "flagged": true,
  "flags": [{ "flag": "insult", "confidence": 0.92 }],
  "checked": [
    "hate",
    "insult",
    "profanity",
    "racism",
    "sexism",
    "sexual"
  ],
  "unchecked": [],
  "tookMs": 640,
  "usage": { "charged": 2, "remaining": 6120 },
  "metadata": { "commentId": "c_48213" }
}

Yorum satıcıya ad takıyor ama küfür içermiyor; tanımlara göre bu hakarettir, küfür değil. Kargonun gecikmesinden yakınmak ise tanımlara göre bayrak kaldırmaz. flagged, istediğiniz bayraklardan biri kalktığında true olur; checked bakılan bayrakları, usage.charged bu kontrolün kaç kredi tuttuğunu gösterir. Anında cevabın fiyatı, webhook ile gelen cevabın iki katıdır. Cevaptaki bütün değerler örnek amaçlıdır, tookMs de dahil; biçim API referansındaki gibidir.

Cevaptan sonra

İşaretlenen mesajla ne yapmalı?

Bayrak mesajı bir bütün olarak değerlendirir; hangi kelimeyi bulduğunu söylemez. Bugünkü planlarda kelimeleri yıldızlayan bir kopya da dönmez. Bu yüzden kararınızı mesajın tamamı için verin.

  • Engelleyin

    Mesajı yayınlamadan önce denetleyin ve kısa bir gerekçeyle reddedin. Herkesin gördüğü yerler, örneğin kullanıcı adları için uygundur.

  • Düzeltmesini isteyin

    Mesajı yazana geri gönderin ve küfürsüz yazmasını isteyin. Her yeni sürüm yeni bir kontroldür.

  • Mesajı bir moderatör bakana kadar yayınlamayın. Moderatör isteği panelin Logs ekranında açar ve Onayla ya da Sil gibi kendi tanımladığınız aksiyonlardan birini seçer; sisteminiz her birini webhook ile alır.

  • Yerine not gösterin

    Mesajın tamamının yerine “Bu mesaj kaldırıldı” gibi bir not gösterin.

  • İşe flagged ile başlayın. Sisteminizin yalnızca daha emin olunan durumlarda kendi başına işlem yapmasını istiyorsanız 0,7 gibi daha yüksek bir çizgi seçin; 0,5 ile o çizgi arasındakileri bir insana gönderin.

Fiyat

Fiyat metnin uzunluğuna göre

  • Sonuç webhook ile gelirse başlayan her 2.500 karakter için bir kredi. Kısa bir yorum ya da kullanıcı adı, webhook ile bir kredi tutar.

  • Varsayılan olan anında cevap bunun iki katıdır. Bekleyebilecek kontrolleri "async": true ile gönderin; sonuç webhook ile gelir ve webhook fiyatını ödersiniz.

  • Bayrak sayısı fiyatı artırmaz

    Yalnızca küfür ve hakareti istemek, bütün bayrakları istemekten pahalı değildir.

  • Hatalar ücretsiz

    Hatalar ücretsizdir; bir bayrağa bakılamadığı kısmi (partial) sonuçlar da.

  • Krediler planla gelir: Basic planda 10.000 metin kredisi var. Kısa mesajlarda bu, webhook ile aynı sayıda kontrole, anında cevapla bunun yarısına yeter. Planlar ve fiyatlar fiyatlandırma sayfasında (İngilizce).

Hukuki not

Bayrak bir suç tespiti değildir

Bu bölüm bir özettir, hukuki tavsiye değildir. 5237 sayılı Türk Ceza Kanunu’nun (TCK) 125. maddesi 16 Ekim 2026’da mevzuat.gov.tr’den okundu.

  • TCK 125 kime uygulanır?

    Madde, bir kimsenin onur, şeref ve saygınlığına saldıran kişiye ceza öngörür. Saldırı, somut bir fiil ya da olgu isnat ederek ya da sövmek suretiyle olabilir; yani küfür de hakaret suçunun yollarından biridir.

  • Yazılı mesaj da kapsanır

    Fiil, mağduru muhatap alan sesli, yazılı ya da görüntülü bir iletiyle işlenirse de aynı ceza uygulanır (125/2). Hakaret alenen işlenirse ceza artırılır (125/4).

  • Bayrak ne söyler?

    Küfür ya da hakaret bayrağı, metnin hangi kategoriye girdiğini söyler. Bir metnin suç olup olmadığına mahkemeler karar verir: bayrak kalkan her mesaj suç değildir, bayrak kalkmayan her mesaj da suçsuz değildir.

  • Kurallar sizin

    Platformunuzda neyin yayınlanacağını kendi kurallarınız belirler. Bayrakları bu kuralları uygulamak için kullanın.

Sınırlar

Neyi yapmaz

  • Kelimenin yerini göstermez

    Bayraklar mesajı bir bütün olarak değerlendirir: hangi kelimenin bayrağı kaldırdığını söylemez, yıldızlanmış bir kopya da döndürmez.

  • İngilizce, İspanyolca, Portekizce, Fransızca, Almanca, İtalyanca, Türkçe, Arapça, Rusça ve Hintçe. Başka dillerdeki metinler de denetlenir, ama sonuçlar güvenilir değildir.

  • Bir bayrak 0,5 güven puanından itibaren kalkar; altındaki bulgular cevaba hiç gelmez. Kendi çizginizi 0,5’in üstünde çizebilirsiniz, altında değil.

  • Yazım hileleri için söz vermez

    Rakamla, sembolle ya da harf atlayarak yazılan küfürler üzerine yayımlanmış bir testimiz yok; bu yüzden bu sayfa onları yakalamayı vaat etmez. Kullanıcılarınızın gerçekten yazdığı biçimleri Playground’da deneyin.

  • Sesli sohbet yakında

    Ses moderasyonu yakında; sesli sohbetteki küfür bugün denetlenmez.

  • Görseldeki yazıya küfür bayrağı yok

    Küfür bayrağı yalnızca metin moderasyonunda vardır; bir resmin üzerine yazılmış küfür için görsel moderasyonunda ayrı bir bayrak yoktur.

  • Detectivision cevap verir, işlemi sisteminiz yapar. Hiçbir mesajı kendisi silmez, gizlemez ya da kimseyi engellemez.

İlgili
Sorular

Sık sorulan sorular

Türkçe karakter kullanılmadan yazılan mesajlar da denetlenir mi?

Evet, her metin gönderildiği gibi denetlenir; Türkçe karakter olmadan yazılmış olması isteği değiştirmez. Ama bu yazımlar üzerine yayımlanmış bir testimiz henüz yok, bu yüzden ne kadar doğru sonuç verdiğini söylemiyoruz. Zorluk şu: “sikildim” hem “sıkıldım” hem de kaba bir fiil olarak okunabilir ve hangisi olduğunu ancak cümlenin geri kalanı söyler; tek kelimeye bakan bir liste bu yüzden yanılır. Kullanıcılarınızın gerçekten yazdığı biçimleri Playground’da deneyin.

Bir mesaj hem küfür hem hakaret bayrağı alabilir mi?

Evet. Her bayrak ayrı değerlendirilir; kalkanların hepsi cevapta kendi güven puanıyla, en güçlüden başlayarak sıralanır. Birine küfrederek saldıran bir mesaj, tanımlara göre hem küfür hem hakarettir. Kurallarınızı bayrak bayrak yazabilirsiniz: örneğin hakaret içeren mesajı bekletip yalnızca küfür içeren mesajı yazarına geri gönderebilirsiniz.

Olumsuz ama küfürsüz bir yorum işaretlenir mi?

Tanımlara göre hayır: bir ürünü, hizmeti ya da teslimatı ad takmadan eleştirmek hakaret sayılmaz ve başka bir bayrağın konusuna da girmez. Bu bir tanımdır, ölçülmüş bir sonuç değildir; sınırdaki yorumları bir moderatöre gönderin.

Küfür bayrağı kalkan bir mesaj TCK’ya göre hakaret suçu mu sayılır?

Bunu bayrak söylemez; bayrak bir suç tespiti değildir. TCK 125 sövmeyi de hakaret suçunun yollarından biri sayar, ama bir metnin suç olup olmadığına mahkemeler karar verir. Bayrak yalnızca metnin hangi kategoriye girdiğini söyler; platformunuzda ne olacağını kurallarınız belirler. Bu cevap hukuki tavsiye değildir.