Усе пасты
12 хв чытання

Як наладзіць фільтр па словах у Telegram-групе

Бот выдаляе паведамленні з патрэбнымі словамі. Разбіраем, як сабраць правіла з некалькіх слоў, дадаць сінонімы і выключэнні і праверыць яго да ўключэння.

Рана ці позна ў любым жывым чаце пачынае паўтарацца адно і тое ж: «пішыце ў асабістыя», «прадам акаўнт», аб’явы пра абмен крыпты. Чысціць гэта рукамі стамляльна, а трымаць кругласутачнага мадэратара няма патрэбы — з такой рэкламай і спамам спраўляецца фільтр па словах: бот сам выдаляе паведамленні, у якіх знайшліся патрэбныя словы.

У Scarabeus гэты фільтр называецца мадэрацыяй па фразах. У адрозненне ад ШІ-правілаў тут няма здагадак: правіла альбо знайшло словы ў паведамленні, альбо не. Таму фразы зручныя там, дзе фармулёўкі прадказальныя, а цана памылкі высокая.

Канструктар выглядае як набор фрагментаў, звязаных паміж сабой. Ніжэй — што азначае кожная сувязь, як яны спалучаюцца і чаму адно і тое ж правіла часам паводзіць сябе не так, як чакаеш. Усе прыклады з вынікамі «зловіць» і «прапусціць» правераны на тым самым механізме, які працуе ў боце.

Дзе наладжваюцца стоп-словы ў Telegram-групе#

Раздзел Мадэрацыя → картка «Мадэрацыя па фразах». На самой картцы — пераключальнік, які ўключае і выключае ўвесь блок, а кнопка «Наладзіць» адкрывае наборы правілаў.

Картка «Мадэрацыя па фразах» у раздзеле «Мадэрацыя»

Зводка на картцы адразу паказвае, колькі набораў і правілаў уключана і ў колькіх наборах яшчэ не зададзены санкцыі.

Правілы жывуць унутры набораў. Набор — гэта тэматычная пачка: «Крыпта», «Рэклама каналаў», «Мат». Сэнс падзелу не касметычны: ланцужок пакаранняў прывязаны да набору, таму рэклама і абразы могуць карацца па-рознаму і не змешваць лічыльнікі парушэнняў.

Як сабраць першае правіла#

Унутры набору націсніце «Дадаць правіла». Правіла збіраецца з фрагментаў двух відаў:

  • фраза — канкрэтныя словы, якія шукаем у паведамленні;
  • лік — любая паслядоўнасць лічбаў, адлюстроўваецца як «любы лік».

Паміж суседнімі фрагментамі заўсёды стаіць сувязь — АБО ці І. Кнопка «Дадаць фрагмент» дадае наступны кавалак, а «Згрупаваць» аб’ядноўвае суседнія фрагменты ў групу.

Рэдактар правіла: група «buy АБО sell», сувязь І з адлегласцю 10 і фраза «crypto»

Зверху рэдактара заўсёды вісіць папярэдні прагляд — ён паказвае, як правіла прачытаецца на самай справе.

Возьмем для прыкладу набор «Крыпта»: у чаце пра настольныя гульні аб’явы пра абмен валют не патрэбныя. Найпрасцейшае працоўнае правіла — адна фраза:

Яно зловіць прамыя аб’явы і прапусціць усё, што сфармулявана інакш. Далей пачынаецца тое, дзеля чаго патрэбны канструктар.

І — абедзве часткі павінны быць у паведамленні#

Сувязь І азначае, што ў тэксце павінны сустрэцца абодва фрагменты. Побач з сувяззю з’яўляецца поле «Да n сімвалаў» — максімальная адлегласць паміж імі.

  • Зловіць: “swap usdt at a good rate”.
  • Зловіць: “usdt for swap” — без строгага парадку няважна, якое слова ідзе першым.
  • Прапусціць: “swap stickers happens every friday at our board game club, and questions about usdt belong in another chat” — паміж словамі больш за 40 сімвалаў.

АБО — дастаткова любой з частак#

Сувязь АБО спрацоўвае, калі знойдзена хоць бы адна з суседніх частак:

  • Зловіць: “buying a couch” — АБО не патрабуе нічога, акрамя аднаго са слоў, таму такое правіла шырокае.
  • Прапусціць: “trading cards”.

Важная тонкасць: АБО звязвае мацней, чым І. Вось гэтае правіла:

чытаецца як «swap або p2p — і побач usdt», а не як «або swap, або p2p побач з usdt». Відавочна тая ж сувязь выглядае так:

  • Прапусціць: “swap stickers” — слова “swap” само па сабе нічога не ловіць, яму таксама патрэбны “usdt” побач.
  • Зловіць: “p2p usdt” і “swap usdt”.

Калі патрэбна іншая групоўка — вылучыце часткі кнопкай «Згрупаваць», тады спачатку шукаецца супадзенне ўнутры групы, а ўжо яго вынік звязваецца з астатнімі фрагментамі. Груп у правіле можа быць некалькі, але група ўнутры групы недапушчальная.

Лік — любыя лічбы#

Фрагмент «любы лік» падстаўляецца замест любой паслядоўнасці лічбаў: сумы, колькасці, нумары. Ён патрэбны там, дзе словы прадказальныя, а лічбы — не:

  • Зловіць: “selling for 500”, “giving away 2 pieces”.
  • Прапусціць: “selling advice” — лічбаў у ім няма.

«Да n сімвалаў»: дзве пасткі#

Першая: 0 азначае «без абмежавання», а не «ўпрытык». Гэта самая частая памылка. Калі паставіць 0, фрагменты проста павінны недзе сустрэцца ў паведамленні — хоць у першым радку і ў апошнім.

Другая: адлегласць лічыцца па тэксце, з якога ўжо прыбраны прабелы.

  • Зловіць: “notcrypto”, “not crypto” і “not crypto” — прабелы знікаюць перад праверкай, таму ва ўсіх трох выпадках адлегласць роўная нулю.

Таму абмежаванне пакрывае значна больш, чым здаецца на вока: 40 сімвалаў без прабелаў — гэта прыблізна шэсць-сем слоў.

Строгі парадак#

Па змаўчанні сувязь І не глядзіць на парадак — як у прыкладзе “usdt for swap” вышэй. Галачка «Строгі парадак» патрабуе, каб часткі ішлі ў тэксце злева направа — роўна так, як яны выстаўлены ў форме. У схеме строгі парадак пазначаецца клічнікам:

  • Зловіць: “buying usdt”.
  • Прапусціць: “usdt buying”.

Строгі парадак можна ўключыць на ўсё правіла цалкам або толькі на групу.

Выключэнні#

Галачка «Выключэнне» ператварае фрагмент ва ўмову, якая адмяняе спрацоўванне. Выключэнне застаецца звычайнай часткай ланцужка — са сваёй сувяззю, як і ўсе астатнія, — і адрозніваецца толькі колерам. Што менавіта яно адмяняе, залежыць ад узроўню.

Выключэнне на верхнім узроўні адмяняе ўсё правіла. Спачатку правяраецца асноўная частка, і калі яна супала, але недзе ў паведамленні знайшлося выключэнне — правіла не спрацоўвае. Прыклад — набор «Рэклама каналаў», дзе ўласныя анонсы не павінны трапляць пад раздачу:

  • Зловіць: “subscribe to the channel”.
  • Адменіць выключэннем: “subscribe to our channel”.
  • Адменіць выключэннем: “our channel: subscribe to the channel” — дзе менавіта ў паведамленні знайшлося выключэнне, значэння не мае.

Калі «сваіх» варыянтаў некалькі, выключэнне ставіцца на ўсю групу — тады любы з іх адмяняе спрацоўванне:

  • Адменіць выключэннем: “subscribe to the official channel”.
  • Зловіць: “subscribe to the channel”.

Выключэнне ўнутры групы гасіць толькі гэтую групу, а астатнія галіны АБО за яе межамі працягваюць працаваць. Як гэта выглядае на справе — у раздзеле пра камбінацыі ніжэй.

На кожным узроўні дазволена адно выключэнне, укладзеныя выключэнні забаронены.

Камбінацыі: як часткі працуюць разам#

Асобныя сувязі зразумелыя; нечаканасці пачынаюцца, калі іх спалучаеш. А менавіта спалучэнні і патрэбны, каб вычышчаць рэкламу і спам, не закранаючы звычайныя размовы. Ніжэй — асноўныя камбінацыі і тое, як на іх рэагуе правіла.

Група з І ўнутры АБО#

Група можа сама быць сувяззю І — тады яна цалкам становіцца адной з галін АБО:

  • Зловіць: “buying usdt” — спрацавала група.
  • Зловіць: “any p2p here?” — спрацавала другая галіна, група не спатрэбілася.
  • Прапусціць: “buying a couch” — у групе не хапіла “usdt”, а “p2p” няма.

Ланцужок з трох частак#

Сувязі І можна ставіць запар, у кожнай свая адлегласць. Правіла спрацуе толькі тады, калі знойдуцца ўсе часткі:

  • Зловіць: “selling telegram account”.
  • Прапусціць: “selling an account” — адной часткі не хапае.

Дзве групы праз І#

Груп можа быць некалькі — напрыклад, сінонімы з абодвух бакоў:

  • Зловіць: “p2p btc”, “swap usdt” — любое слова з першай групы побач з любым з другой.
  • Прапусціць: “swap stamps”.

Строгі парадак без абмежавання адлегласці#

Строгі парадак і адлегласць незалежныя. З нулём парадак важны, а разрыў — не:

  • Зловіць: “swap stickers, and at the very end about usdt”.
  • Прапусціць: “usdt first, swap later”.

Строгі парадак толькі ўнутры групы#

Парадак можна патрабаваць ад адной групы, не звязваючы астатняе правіла:

  • Зловіць: “buying usdt”.
  • Прапусціць: “usdt buying” — унутры групы парадак парушаны.
  • Зловіць: “usdt buying via p2p” — група не спрацавала, затое спрацавала галіна “p2p”.

Лік першым#

Лік можа стаяць дзе заўгодна ў ланцужку. Разам са строгім парадкам гэта дазваляе лавіць «сума, потым валюта», не чапаючы адваротны парадак:

  • Зловіць: “500 usdt”.
  • Прапусціць: “usdt 500”.

Выключэнне ўнутры групы#

Самы тонкі выпадак: выключэнне гасіць толькі сваю групу, а суседняя галіна АБО жыве ўласным жыццём:

  • Зловіць: “swap usdt” — група спрацавала, выключэння няма.
  • Адменіць выключэннем: “swap stickers” — група пагашана, іншых галін у паведамленні няма.
  • Зловіць: “swap stickers and p2p” — група пагашана, але галіна “p2p” спрацавала сама.

Строгі парадак і выключэнне#

Выключэнне не ўдзельнічае ў парадку: строгі парадак правярае асноўныя часткі, а выключэнне шукаецца па ўсім паведамленні:

  • Зловіць: “buying usdt”.
  • Адменіць выключэннем: “buying from you usdt”.

Чаму правіла спрацоўвае не так: што адбываецца з тэкстам перад праверкай#

Гэта ключавы раздзел: палова нечаканасцей тлумачыцца менавіта ім. І правіла, і паведамленне зводзяцца да аднаго выгляду, і толькі потым параўноўваюцца:

  1. тэкст пераводзіцца ў ніжні рэгістр — рэгістр ніколі не важны;
  2. эмодзі выдаляюцца;
  3. знакі прыпынку і сімвалы замяняюцца на прабел;
  4. падмена літар распазнаецца: у словах, дзе перамяшаны алфавіты або літары з лічбамі, лішнія сімвалы вяртаюцца назад — “go0ds” чытаецца як “goods”, а “cаnal” з кірылічнай «а» — як “canal”. Паслядоўнасць лічбаў не чапаюць, таму “100” застаецца “100” — і “g00ds” з двума нулямі запар таксама не ператвараецца;
  5. усе прабелы выдаляюцца.

Адсюль тры наступствы, якія варта памятаць:

  • Пошук ідзе па падрадку, межаў слоў няма. Фраза ban знойдзецца ў “banana” і “urban”. Кароткія фразы амаль заўсёды трэба ўдакладняць сувяззю І або замяняць больш доўгімі.
  • Прабелы і знакі ўнутры фразы не замінаюць. Правіла spam спрацуе на “s p a m” і “s.p.a.m”.
  • Фраза з адных толькі эмодзі ці знакаў прыпынку не спрацуе ніколі — пасля нармалізацыі ад яе нічога не застанецца.

Праверце правіла да таго, як яно запрацуе#

Унізе рэдактара ёсць картка «Праверыць правіла». Устаўце ў поле «Тэкст для праверкі» сапраўднае паведамленне і націсніце «Праверыць».

Правяраецца чарнавік, які зараз адкрыты ў форме, — захоўваць правіла не трэба. Санкцый гэта не выклікае і ў журнал не трапляе. Адказ бывае трох відаў:

  • «Тэкст не праходзіць мадэрацыю» — правіла спрацавала б;
  • «Тэкст праходзіць мадэрацыю» — не спрацавала; ніжэй пералічана, чаго менавіта не хапіла: «У тэксце не знойдзена: …»;
  • «Тэкст праходзіць мадэрацыю» і пры гэтым падсвечана выключэнне — правіла спрацавала, але было адменена выключэннем.

Падсвечванне паказвае тэкст ужо пасля нармалізацыі: без прабелаў, эмодзі і знакаў прыпынку. Выглядае незвычайна, затое адразу відаць, што менавіта параўноўвае бот.

Картка «Праверыць правіла»: тэкст “sell crypto” не праходзіць мадэрацыю

Праверка нічога не захоўвае і нікога не карае — яна толькі паказвае, ці спрацавала б правіла на гэтым тэксце.

Чаму правіла не выдаляе паведамленні: санкцыі задаюцца ў наборы#

Ланцужок пакаранняў задаецца толькі ў наборы: «Пасля N парушэнняў — папярэджанне, пасля наступнага — мут» і гэтак далей. Ні ў асобнага правіла, ні ў блока ў цэлым свайго ланцужка няма — менавіта набор і ёсць той адзінкай, якой прызначаецца строгасць. Таму правілы і варта раскладваць па наборах: «Крыпта», «Рэклама каналаў», «Мат» караюцца па-рознаму.

Набор «Profanity»: два правілы і ланцужок «без санкцыі → папярэджанне → мут»

Правілы набору відаць спісам, а ўнізе карткі — яго ланцужок пакаранняў.

Калі ў наборы не наладжаны санкцыі, яго правілы не спрацуюць увогуле — і ў журнале не з’явіцца ніводнага радка. Набор выглядае працоўным, але насамрэч не дзейнічае. Калі правіла «не ловіць», правяраць варта найперш гэта.

Галачка «Свой лічыльнік парушэнняў» у рэдактары правіла патрэбна, калі адно правіла не павінна цягнуць за сабой астатнія: яго спрацоўванні лічацца асобна і не зрушваюць агульны лічыльнік набору. Адваротны бок — пры выключэнні галачкі назапашаны лічыльнік гэтага правіла выдаляецца, і эскалацыя пачынаецца нанова.

Што і калі правяраецца#

  • Правяраецца тэкст паведамлення і подпіс да медыя. Паведамленні без тэксту тэкставыя слаі не закранаюць.
  • Адрэдагаваныя паведамленні правяраюцца нанова — праўка не ратуе.
  • Адміны чата і ўдзельнікі з белага спісу прапускаюцца да ўсіх праверак: ні спрацоўванняў, ні лічыльнікаў.
  • Слаі ідуць па чарзе: даўжыня → дублікаты → фразы → рэгулярныя выразы → спасылкі. Першы слой, які спрацаваў, завяршае праверку, таму паведамленне, злоўленае па даўжыні ці дублікатах, да фраз ужо не даходзіць.
  • Калі спрацавалі некалькі фразавых правілаў, залічваецца першае па парадку — ад яго і бярэцца набор, а значыць і ланцужок пакаранняў.

У журнале мадэрацыі спрацоўванне адлюстроўваецца як «Фразы: назва набору», там жа відаць, якое правіла супала і на якой прыступцы эскалацыі апынуўся ўдзельнік.

Ліміты тарыфаў#

На Абмежаваным тарыфе адначасова працуе не больш за дзесяць фразавых правілаў: пераключальнік у картцы набору выбірае, якія менавіта з іх актыўныя. Колькасць саміх набораў не абмежавана. На Base абмежаванняў па фразах няма, і там жа даступныя рэгулярныя выразы і асобныя налады для тэм форуму. Што ўваходзіць у кожны тарыф — на старонцы тарыфаў.

Частыя пытанні#

Чым фразавыя правілы адрозніваюцца ад звычайных стоп-слоў?

Стоп-слова забаронена само па сабе. Фразавае правіла ўмее патрабаваць некалькі слоў побач, дапускаць сінонімы праз АБО, улічваць парадак і маўчаць, калі ў паведамленні знайшлося выключэнне. Таму яно значна радзей закранае звычайныя размовы.

Як заблакаваць мат у Telegram-чаце?

Завядзіце асобны набор — напрыклад, «Ненарматыўная лексіка», — складзіце ў яго правілы з варыянтамі напісання праз АБО і прызначце набору ланцужок пакаранняў. Пакуль у наборы няма санкцый, яго правілы не спрацоўваюць.

Чаму маё правіла нічога не выдаляе?

Часцей за ўсё ў наборы не наладжаны ланцужок пакаранняў. Іншыя прычыны: блок «Мадэрацыя па фразах» выключаны; паведамленне злавіў больш ранні слой — даўжыня або дублікаты; аўтар аказаўся адмінам чата ці ўдзельнікам белага спісу; на Абмежаваным тарыфе правіла не трапіла ў дзясятку актыўных.

Ці ловяцца словы з прабеламі і падмененымі літарамі?

Так. Перад праверкай з тэксту прыбіраюцца прабелы, эмодзі і знакі прыпынку, а лішнія лічбы ці літары з іншага алфавіту ўнутры слова вяртаюцца назад. Таму “s p a m”, “s.p.a.m” і “spam” для правіла — адно і тое ж.

Ці правяраюцца подпісы да фота і адрэдагаваныя паведамленні?

Так. Правілы глядзяць на тэкст паведамлення і подпіс да медыя, а адрэдагаванае паведамленне правяраецца нанова — праўка яго не ратуе.

Кароткі чэк-ліст#

  • Набору прызначаны ланцужок пакаранняў — інакш правілы маўчаць.
  • Значэнне «Да n сімвалаў» — не 0, калі вы мелі на ўвазе «побач».
  • Патрэбны парадак слоў — уключаны «Строгі парадак».
  • Кароткія фразы накшталт ban удакладнены сувяззю І, каб не лавіць “banana”.
  • Правіла правералі на сапраўдным паведамленні ў картцы «Праверыць правіла».
  • Уласныя анонсы вынесены ў выключэнне.

Іншыя інструкцыі па наладзе мадэрацыі Telegram-груп — у журнале Scarabeus.

Чытаць далей