Tüm yazılar
12 dk okuma

Telegram grubunda kelime filtresi nasıl kurulur

Bot, belirli kelimeler geçen mesajları siler. Böyle bir kuralı birkaç kelimeden nasıl kuracağınızı, eş anlamlı ve istisna ekleyip nasıl test edeceğinizi görün.

Er ya da geç her canlı sohbette aynı şeyler tekrarlanmaya başlar: “özelden yaz”, “hesap satılık”, kripto takas ilanları. Bunu elle temizlemek yorucudur, gece gündüz bir moderatör tutmanın da anlamı yoktur — bu tür reklam ve spamın hakkından bir kelime filtresi gelir: aranan kelimelerin geçtiği mesajları botun kendisi siler.

Scarabeus’ta bu filtrenin adı ifade moderasyonu. Yapay zekâ kurallarının aksine burada tahmin yoktur: kural ya mesajda kelimeleri bulmuştur ya da bulmamıştır. Bu yüzden ifadeler, ifade biçimlerinin öngörülebilir ve hatanın pahalı olduğu yerlere yakışır.

Kurgulayıcı, birbirine bağlanmış parçalar dizisi gibi görünür. Aşağıda her bağlantının ne anlama geldiği, bunların nasıl birleştiği ve aynı kuralın neden bazen beklediğinizden başka davrandığı anlatılıyor. “Yakalar” ve “atlar” sonuçlarının hepsi, botun içinde çalışan mekanizmanın ta kendisinde ölçüldü.

Telegram grubunda yasaklı kelimeler nerede ayarlanır#

Moderasyon bölümü → “İfade moderasyonu” kartı. Bloğun tamamını açıp kapatan anahtar kartın kendisinde durur, “Yapılandır” düğmesi ise kural setlerini açar.

Moderasyon bölümündeki “İfade moderasyonu” kartı

Karttaki özet, kaç setin ve kuralın açık olduğunu ve kaç sette yaptırımların hâlâ eksik olduğunu hemen gösterir.

Kurallar setlerin içinde yaşar. Set, konuya göre bir demettir: “Kripto”, “Kanal reklamı”, “Küfür”. Bu ayrım süs değildir: yaptırım zinciri sete aittir, bu yüzden reklam ile hakaret farklı cezalandırılabilir ve ihlal sayaçları birbirine karışmaz.

İlk kuralınızı nasıl kurarsınız#

Bir setin içinde **“Kural ekle”**ye basın. Kural iki tür parçadan kurulur:

  • ifade — mesajda aranacak somut kelimeler;
  • sayı — herhangi bir rakam dizisi, “herhangi bir sayı” diye görünür.

Komşu parçaların arasında her zaman bir bağlantı durur: VEYA ya da VE. “Parça ekle” düğmesi bir sonraki parçayı ekler, “Grupla” ise komşu parçaları bir grupta birleştirir.

Kural düzenleyici: “buy VEYA sell” grubu, mesafesi 10 olan bir VE bağlantısı ve “crypto” ifadesi

Düzenleyicinin üstünde her zaman bir önizleme durur — kuralın gerçekte nasıl okunacağını gösterir.

Örnek olarak “Kripto” setini alalım: kutu oyunları üzerine bir sohbette döviz takası ilanlarının işi yok. En basit çalışan kural tek bir ifadedir:

Bu kural doğrudan ilanları yakalar, başka türlü kurulmuş her şeyi atlar. Asıl kurgulayıcıya ihtiyaç duyulan yer buradan sonra başlar.

VE — iki parça da mesajda bulunmalı#

VE bağlantısı, metinde her iki parçanın da geçmesi gerektiği anlamına gelir. Bağlantının yanında “En fazla n karakter” alanı belirir: aralarındaki azami mesafe.

  • Yakalar: “swap usdt at a good rate”.
  • Yakalar: “usdt for swap” — sıkı sıra olmadan hangi kelimenin önce geldiği önemli değildir.
  • Atlar: “swap stickers happens every friday at our board game club, and questions about usdt belong in another chat” — kelimelerin arası 40 karakterden fazla.

VEYA — parçalardan herhangi biri yeter#

VEYA bağlantısı, komşu parçalardan en az biri bulunduğunda devreye girer:

  • Yakalar: “buying a couch” — VEYA, kelimelerden biri dışında hiçbir şey istemez, bu yüzden böyle bir kural çok geniştir.
  • Atlar: “trading cards”.

Önemli bir incelik: VEYA, VE’den daha sıkı bağlar. Şu kural:

“swap ya da p2p — ve yanında usdt” diye okunur, “ya swap, ya da usdt’nin yanında p2p” diye değil. Açıkça yazılınca aynı bağlantı şöyle görünür:

  • Atlar: “swap stickers” — “swap” kelimesi tek başına hiçbir şey yakalamaz, onun da yakınında bir “usdt” gerekir.
  • Yakalar: “p2p usdt” ve “swap usdt”.

Başka bir gruplama gerekiyorsa parçaları “Grupla” düğmesiyle seçin: o zaman önce grubun içindeki eşleşme aranır, sonucu ise diğer parçalarla bağlanır. Bir kuralda birden çok grup olabilir, ama grubun içinde grup olmaz.

Sayı — herhangi rakamlar#

“Herhangi bir sayı” parçası her rakam dizisinin yerine geçer: tutarlar, adetler, numaralar. Kelimelerin öngörülebilir, rakamların ise öngörülemez olduğu yerde gerekir:

  • Yakalar: “selling for 500”, “giving away 2 pieces”.
  • Atlar: “selling advice” — içinde rakam yok.

“En fazla n karakter”: iki tuzak#

Birincisi: 0, “yan yana” değil, “sınırsız” demektir. En sık yapılan hata budur. 0 konursa parçaların mesajın herhangi bir yerinde buluşması yeter — biri ilk satırda, öbürü son satırda olsa bile.

İkincisi: mesafe, boşlukları çoktan atılmış bir metin üzerinden sayılır.

  • Yakalar: “notcrypto”, “not crypto” ve “not crypto” — boşluklar kontrolden önce yok olur, yani üç durumda da mesafe sıfırdır.

Bu yüzden sınır, göze göründüğünden çok daha fazlasını kapsar: boşluksuz 40 karakter aşağı yukarı altı yedi kelime eder.

Sıkı sıra#

Varsayılan olarak VE bağlantısı sıraya bakmaz — yukarıdaki “usdt for swap” örneğindeki gibi. “Sıkı sıra” kutusu, parçaların metinde soldan sağa, tam da formdaki dizilişleriyle geçmesini ister. Şemada sıkı sıra ünlem işaretiyle gösterilir:

  • Yakalar: “buying usdt”.
  • Atlar: “usdt buying”.

Sıkı sıra kuralın tamamı için de, yalnızca bir grup için de açılabilir.

İstisnalar#

“İstisna” kutusu, bir parçayı tetiklenmeyi iptal eden bir koşula çevirir. İstisna zincirin sıradan bir parçası olarak kalır — diğerleri gibi kendi bağlantısıyla — ve yalnızca rengiyle ayrılır. Tam olarak neyi iptal ettiği düzeye bağlıdır.

Üst düzeydeki bir istisna kuralın tamamını iptal eder. Önce ana kısım kontrol edilir; eşleşmiş ama mesajın bir yerinde istisna bulunmuşsa kural tetiklenmez. Örnek, kendi duyurularının toplu cezaya girmemesi gereken “Kanal reklamı” setidir:

  • Yakalar: “subscribe to the channel”.
  • İstisna iptal eder: “subscribe to our channel”.
  • İstisna iptal eder: “our channel: subscribe to the channel” — istisnanın mesajın neresinde geçtiğinin önemi yoktur.

“Kendi” varyantları birkaç taneyse istisna grubun tamamına konur — o zaman herhangi biri tetiklenmeyi iptal eder:

  • İstisna iptal eder: “subscribe to the official channel”.
  • Yakalar: “subscribe to the channel”.

Grubun içindeki bir istisna yalnızca o grubu söndürür, dışarıdaki diğer VEYA dalları çalışmaya devam eder. Bunun pratikte nasıl göründüğü aşağıdaki birleşimler bölümünde.

Her düzeyde bir istisnaya izin verilir, iç içe istisnalar yasaktır.

Birleşimler: parçalar bir arada nasıl çalışır#

Bağlantılar tek tek anlaşılır; sürprizler onları birleştirince başlar. Oysa sıradan sohbetlere dokunmadan reklamı ve spamı ayıklamak için tam da bu birleşimler gerekir. Aşağıda başlıca birleşimler ve kuralın bunlara nasıl tepki verdiği var.

VEYA’nın içinde VE’li bir grup#

Grubun kendisi bir VE bağlantısı olabilir — o zaman bütün hâlinde VEYA dallarından biri olur:

  • Yakalar: “buying usdt” — grup tetiklendi.
  • Yakalar: “any p2p here?” — ikinci dal tetiklendi, gruba gerek kalmadı.
  • Atlar: “buying a couch” — grupta “usdt” eksik, “p2p” de yok.

Üç parçalı zincir#

VE bağlantıları arka arkaya konabilir, her birinin kendi mesafesi olur. Kural yalnızca parçaların hepsi bulunduğunda tetiklenir:

  • Yakalar: “selling telegram account”.
  • Atlar: “selling an account” — bir parça eksik.

VE ile bağlı iki grup#

Grup birden çok olabilir — örneğin iki yanda da eş anlamlılar:

  • Yakalar: “p2p btc”, “swap usdt” — birinci gruptaki herhangi bir kelime, ikincideki herhangi birinin yanında.
  • Atlar: “swap stamps”.

Mesafe sınırı olmadan sıkı sıra#

Sıkı sıra ile mesafe birbirinden bağımsızdır. Sıfırla sıra önemlidir, aradaki uzaklık değil:

  • Yakalar: “swap stickers, and at the very end about usdt”.
  • Atlar: “usdt first, swap later”.

Sıkı sıra yalnızca grubun içinde#

Sıra, kuralın kalanını bağlamadan tek bir gruptan istenebilir:

  • Yakalar: “buying usdt”.
  • Atlar: “usdt buying” — grubun içinde sıra bozulmuş.
  • Yakalar: “usdt buying via p2p” — grup tetiklenmedi, ama “p2p” dalı tetiklendi.

Önce sayı#

Sayı zincirin herhangi bir yerinde durabilir. Sıkı sırayla birlikte bu, ters sıraya dokunmadan “tutar, sonra para birimi” kalıbını yakalamayı sağlar:

  • Yakalar: “500 usdt”.
  • Atlar: “usdt 500”.

Grubun içinde istisna#

En ince durum: istisna yalnızca kendi grubunu söndürür, VEYA’nın komşu dalı ise kendi hayatını yaşar:

  • Yakalar: “swap usdt” — grup tetiklendi, istisna yok.
  • İstisna iptal eder: “swap stickers” — grup söndü, mesajda başka dal da yok.
  • Yakalar: “swap stickers and p2p” — grup söndü, ama “p2p” dalı kendi başına tetiklendi.

Sıkı sıra ve istisna#

İstisna sıraya katılmaz: sıkı sıra ana parçaları kontrol eder, istisna ise mesajın tamamında aranır:

  • Yakalar: “buying usdt”.
  • İstisna iptal eder: “buying from you usdt”.

Kural neden beklendiği gibi çalışmıyor: kontrolden önce metne ne olur#

Bu, kilit bölümdür: sürprizlerin yarısı tam da burada açıklanır. Hem kural hem mesaj aynı biçime indirgenir, ancak ondan sonra karşılaştırılır:

  1. metin küçük harfe çevrilir — büyük küçük harf hiçbir zaman önemli değildir;
  2. emojiler silinir;
  3. noktalama işaretleri ve semboller boşlukla değiştirilir;
  4. harf değişimi tanınır: alfabelerin ya da harflerle rakamların karıştığı kelimelerde yabancı karakterler yerine döndürülür — “go0ds” “goods” diye okunur, Kiril “а”sı taşıyan “cаnal” ise “canal” diye. Rakam dizisine dokunulmaz, yani “100” yine “100” kalır — art arda iki sıfırlı “g00ds” de dönüşmez;
  5. bütün boşluklar silinir.

Buradan akılda tutulması gereken üç sonuç çıkar:

  • Arama alt dizgi üzerinden yürür, kelime sınırı yoktur. ban ifadesi “banana” ve “urban” içinde bulunur. Kısa ifadeleri neredeyse her zaman bir VE bağlantısıyla daraltmak ya da daha uzunlarıyla değiştirmek gerekir.
  • İfadenin içindeki boşluklar ve işaretler engel olmaz. spam kuralı “s p a m” ve “s.p.a.m” üzerinde de tetiklenir.
  • Yalnızca emojilerden ya da noktalama işaretlerinden oluşan bir ifade asla tetiklenmez — normalleştirmeden sonra ondan geriye hiçbir şey kalmaz.

Kural çalışmaya başlamadan önce onu kontrol edin#

Düzenleyicinin altında “Kuralı kontrol et” kartı var. “Kontrol edilecek metin” alanına gerçek bir mesaj yapıştırın ve **“Kontrol et”**e basın.

Formda şu anda açık olan taslak kontrol edilir — kuralı kaydetmeye gerek yok. Bu ne yaptırım doğurur ne de günlüğe düşer. Yanıt üç türlü olur:

  • “Metin moderasyondan geçmez” — kural tetiklenirdi;
  • “Metin moderasyondan geçer” — tetiklenmedi; aşağıda tam olarak neyin eksik kaldığı sıralanır: “Metinde bulunamadı: …”;
  • “Metin moderasyondan geçer” ve bu arada istisna vurgulanmışsa — kural tetiklendi, ama istisna onu iptal etti.

Vurgulama, metni çoktan normalleştirilmiş hâliyle gösterir: boşluksuz, emojisiz, noktalama işaretsiz. Alışılmadık görünür, ama botun gerçekte neyi karşılaştırdığı anında belli olur.

“Kuralı kontrol et” kartı: “sell crypto” metni moderasyondan geçmez

Kontrol hiçbir şey kaydetmez ve kimseyi cezalandırmaz — yalnızca kuralın bu metinde tetiklenip tetiklenmeyeceğini gösterir.

Kural neden mesaj silmiyor: yaptırımlar sette belirlenir#

Ceza zinciri yalnızca sette belirlenir: “N ihlalden sonra uyarı, bir sonrakinde susturma” ve böyle sürer. Ne tek bir kuralın ne de bloğun tamamının kendi zinciri vardır — sertliğin atandığı birim tam olarak settir. Kuralları setlere dağıtmaya değmesinin nedeni de budur: “Kripto”, “Kanal reklamı” ve “Küfür” farklı cezalandırılır.

“Profanity” seti: iki kural ve “yaptırımsız → uyarı → susturma” zinciri

Setin kuralları liste hâlinde görünür, kartın altında ise onun ceza zinciri durur.

Sette yaptırımlar ayarlanmamışsa kuralları hiç tetiklenmez — ve günlükte tek bir satır bile belirmez. Set çalışır görünür, ama aslında etki etmez. Bir kural “yakalamıyorsa” önce buna bakmak gerekir.

Kural düzenleyicideki “Ayrı ihlal sayacı” kutusu, bir kuralın diğerlerini peşinden sürüklememesi gerektiğinde gerekir: onun tetiklenmeleri ayrı sayılır ve setin ortak sayacını oynatmaz. Madalyonun öbür yüzü: kutu kapatıldığında bu kuralın biriktirdiği sayaç silinir ve tırmanma baştan başlar.

Ne, ne zaman kontrol edilir#

  • Mesajın metni ve medyanın açıklaması kontrol edilir. Metinsiz mesajlar metin katmanlarına hiç uğramaz.
  • Düzenlenen mesajlar yeniden kontrol edilir — düzeltmek kurtarmaz.
  • Sohbet yöneticileri ve beyaz listedeki katılımcılar bütün kontrollerden önce atlanır: ne tetiklenme olur ne sayaç.
  • Katmanlar sırayla gider: uzunluk → yinelenenler → ifadeler → düzenli ifadeler → bağlantılar. Tetiklenen ilk katman kontrolü bitirir, bu yüzden uzunluğa ya da yinelenenlere takılan bir mesaj ifadelere hiç ulaşmaz.
  • Birkaç ifade kuralı tetiklendiyse sıradaki ilki sayılır — set de, dolayısıyla ceza zinciri de ondan alınır.

Moderasyon günlüğünde tetiklenme “İfadeler: setin adı” diye görünür; aynı yerde hangi kuralın eşleştiği ve katılımcının tırmanmanın hangi basamağında olduğu da görülür.

Tarife sınırları#

Sınırlı tarifede aynı anda en fazla on ifade kuralı çalışır: hangilerinin etkin olduğunu setin kartındaki anahtar seçer. Setlerin sayısı sınırlı değildir. Base’te ifadelerde sınır yoktur, düzenli ifadeler ve forum konuları için ayrı ayarlar da oradadır. Hangi tarifede ne olduğu tarifeler sayfasında.

Sık sorulan sorular#

İfade kuralları sıradan yasaklı kelimelerden nasıl ayrılır?

Yasaklı kelime kendi başına yasaktır. İfade kuralı ise birkaç kelimenin yan yana olmasını isteyebilir, VEYA ile eş anlamlılara izin verebilir, sırayı hesaba katabilir ve mesajda bir istisna bulunduysa susabilir. Bu yüzden sıradan sohbetlere çok daha seyrek dokunur.

Telegram sohbetinde küfür nasıl engellenir?

Ayrı bir set açın — örneğin “Müstehcen dil” — içine yazım varyantlarını VEYA ile birleştiren kurallar koyun ve sete bir ceza zinciri atayın. Sette yaptırım olmadığı sürece kuralları tetiklenmez.

Kuralım neden hiçbir şey silmiyor?

Çoğunlukla sette ceza zinciri ayarlanmamıştır. Diğer nedenler: “İfade moderasyonu” bloğu kapalıdır; mesajı daha önceki bir katman yakalamıştır — uzunluk ya da yinelenenler; yazar sohbet yöneticisi ya da beyaz listedeki bir katılımcı çıkmıştır; Sınırlı tarifede kural etkin on kuralın içine girmemiştir.

Boşluklu ve harfleri değiştirilmiş kelimeler yakalanır mı?

Evet. Kontrolden önce metinden boşluklar, emojiler ve noktalama işaretleri atılır, kelimenin içine sokuşturulmuş fazladan rakamlar ya da başka alfabeden harfler yerine döndürülür. Bu yüzden “s p a m”, “s.p.a.m” ve “spam” kural için aynı şeydir.

Fotoğraf açıklamaları ve düzenlenmiş mesajlar kontrol edilir mi?

Evet. Kurallar mesajın metnine ve medyanın açıklamasına bakar, düzenlenmiş mesaj ise yeniden kontrol edilir — düzeltmek onu kurtarmaz.

Kısa kontrol listesi#

  • Sete bir ceza zinciri atanmıştır — yoksa kurallar susar.
  • “Yan yana” demek istediyseniz “En fazla n karakter” değeri 0 değildir.
  • Kelime sırası önemliyse “Sıkı sıra” açıktır.
  • ban gibi kısa ifadeler “banana”yı yakalamasın diye bir VE bağlantısıyla daraltılmıştır.
  • Kural, “Kuralı kontrol et” kartında gerçek bir mesaj üzerinde denenmiştir.
  • Kendi duyurularınız bir istisnaya konmuştur.

Telegram gruplarının moderasyonuna dair diğer rehberler Scarabeus günlüğünde.

Bunları da okuyun