Багатомовний спам-фільтр

Багато спам-фільтрів створювали для англійської. Спам іншими мовами проходить повз них, а звичайні листи іншими мовами позначаються через свою писемність. Spam Scanner створено, щоб уникнути обох проблем.

Читання слів#

Слова виділяються за допомогою Intl.Segmenter, тобто правил меж слів Unicode зі словниками для китайської, японської, тайської, лаоської, кхмерської та бірманської. Китайське речення розпадається на слова, як-от 恭喜, 获得 і 大奖, а не на один довгий рядок, що ніколи не повторюється.

Маскування знімається до підрахунку: невидимі символи всередині слів, кириличні або грецькі літери в латинських словах (pаypal), цифри замість літер (v1agra) і математичні або обведені літери (𝐅𝐑𝐄𝐄). Кожне маскування саме по собі теж є ознакою.

Не позначати те, чого не знає#

Відкриті набори даних спаму містять набагато більше іншомовного спаму, ніж іншомовного hamБажана пошта: протилежність спаму. (бажаних листів), тож наївний класифікатор вивчає, що сам арабський чи корейський текст є спамом. Spam Scanner ніколи не використовує мову як ознаку, зважує кожне слово відносно кількості спаму й ham його власної мови і залишається «невизначеним» тим більше, чим менше ham він бачив цією мовою.

У тесті на SMS-повідомленнях 21 мовою, яких вбудована модель ніколи не бачила, це звело до нуля хибні спрацювання для китайської, арабської, корейської, японської, гінді, бенгальської, урду, турецької, української та шведської.

Виявлення спаму будь-якою мовою#

  • Перевірки, які не читають слів: схожі домени, оманливі посилання, виконувані файли, макроси, SPFSender Policy Framework: запис DNS зі списком серверів, яким дозволено надсилати пошту від імені домену., DKIMDomainKeys Identified Mail: підпис листа, який перевіряють відкритим ключем, опублікованим у DNS відправника., DMARCПолітика в DNS, яка вказує отримувачам, що робити з поштою від імені домену, коли вона не проходить вирівнювання SPF і DKIM. і чорні списки.
  • Мовна модель для невизначених листів. Відкриті моделі, як-от Qwen 3.5 і Gemma 4, читають від 140 до 200 мов; наскрізні тести перевіряють спам і ham китайською, арабською, корейською, гінді та тайською на справжній моделі.
  • Ваша власна пошта. Кількох сотень листів кожного типу певною мовою достатньо, щоб модель, навчена на вашій пошті, була в цій мові повністю впевненою.
Shell
spamscanner scan message.eml --llm ollama --llm-model qwen3.5:4b
spamscanner train --spam ~/Maildir/.Junk --ham ~/Maildir/cur --out my-model.json

Щоб приймати лише деякі мови, --allow-language en,de додає бали пошті, яку впевнено визначено як написану будь-якою іншою мовою.

Докладніше про мови

Редагувати цю сторінку на GitHub · Markdown ·