Це команда bogofilter-sqlite, яку можна запустити у безкоштовного хостинг-провайдера OnWorks за допомогою однієї з наших безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
bogofilter - швидкий байєсівський спам-фільтр
СИНТАКСИС
богофільтр [параметри допомоги | варіанти класифікації | варіанти реєстрації |
параметри параметрів | параметри інформації] [загальні параметри] [параметри файлу конфігурації]
де
допомога опції є:
[-h] [--довідка] [-V] [-Q]
класифікація опції є:
[-p] [-e] [-t] [-T] [-u] [-H] [-M] [-b] [-B об'єкт ...] [-R] [загальні параметри]
[параметри параметрів] [параметри файлу конфігурації]
реєстрація опції є:
[-s | -n] [-S | -N] [загальні параметри]
загальний опції є:
[-c ім'я файлу] [-C] [-d реж] [-к розмір кешу] [-l] [-L тег] [-І ім'я файлу] [-О ім'я файлу]
параметр опції є:
[-Е значення[,значення]] [-м значення[,значення][,значення]] [-о значення[,значення]]
info опції є:
[-v] [-y дата] [-D] [-x прапори]
конфиг файл опції є:
[--параметр=значення]
Примітка: Використовуйте богофільтр --допомога щоб відобразити повний список опцій.
ОПИС
Bogofilter — це байєсівський фільтр спаму. У звичайному режимі роботи він приймає електронну пошту
повідомлення або інший текст на стандартному введенні, виконує статистичну перевірку зі списками "добре"
і "погані" слова, а також повертає код статусу, який вказує, чи є повідомлення спамом.
Bogofilter розроблений з швидким алгоритмом, використовує Berkeley DB для швидкого запуску і
пошуку, закодований безпосередньо на C і налаштований на швидкість, тому його можна використовувати для виробництва
сайти, які обробляють велику кількість пошти.
ТЕОРІЯ OF РОБОТА
Bogofilter розглядає свій вхід як пакет токенів. Кожен маркер перевіряється зі списком слів,
який підтримує підрахунок кількості випадків, коли це траплялося в листах, які не є спамом та спамом.
Ці числа використовуються для обчислення оцінки ймовірності того, що повідомлення в якому
токен є спамом. Вони об’єднані, щоб вказати, чи є повідомлення спамом або
шинка.
Хоча цей метод звучить грубо в порівнянні з більш звичайним підходом зіставлення шаблонів, він
виявляється надзвичайно ефективним. Папір Пола Грема A План для Spam[1] рекомендовано
читання.
Ця програма значно покращує пропозицію Пола, роблячи більш розумний лексичний аналіз.
Bogofilter виконує правильне декодування MIME та розумний аналіз HTML. Особливі види
маркери, такі як імена хостів та IP-адреси, зберігаються як функції розпізнавання, а не
розпалася. Різноманітні помилки MTA, такі як дати та ідентифікатори повідомлень, ігноруються, щоб ні
роздути список слів. Маркери, знайдені в різних полях заголовків, позначені відповідним чином.
Іншим покращенням є те, що ця програма пропонує модифікації, запропоновані Гарі Робінсоном
обчислення (див. параметри robx і robs нижче). Ці модифікації є
описано в статті Робінсона Spam Виявлення[2].
Відтоді Робінсон (див. його статтю в журналі Linux A Статистичний Підхід до Spam
Проблема[3]) та інші зрозуміли, що розрахунок можна додатково оптимізувати за допомогою
Метод Фішера. Інший поліпшення[4] компенсує надмірність маркерів шляхом застосування
окремі коефіцієнти ефективного розміру (ESF) для розрахунків ймовірності спаму та неспаму.
Коротше кажучи, ось як це працює: оцінки ймовірності спаму для особи
токени об’єднуються за допомогою «зворотної функції хі-квадрат». Його значення вказує, наскільки погано
нульова гіпотеза про те, що повідомлення є просто випадковою сукупністю незалежних слів з
ймовірності, надані нашими попередніми оцінками, не відповідають дійсності. Ця функція дуже чутлива до
малі ймовірності (хаммісові слова), але не великі ймовірності (спамські слова); так
значення вказує лише на сильні ознаки хамміша в повідомленні. Тепер використовуємо зворотний
ймовірності для токенів, те саме обчислення виконується знову, дає індикатор, що
повідомлення виглядає дуже спамським. Нарешті, ці два показники віднімаються (і
масштабований до інтервалу 0-1). Цей комбінований показник (богосити) близький до 0 за ознаками
для повідомлення hammish є сильнішими, ніж для повідомлення зі спамом, і близькі до 1, якщо
ситуація навпаки. Якщо ознаки для обох однаково сильні, значення буде таким
близько 0.5. Оскільки ці повідомлення не дають чіткої вказівки на те, що існує триштатний режим
bogofilter, щоб позначити ці повідомлення як невпевнені, а очищені повідомлення позначено як спам
або шинку відповідно. У режимі з двома станами кожне повідомлення позначається як спам, або як хам.
На ці розрахунки впливають різні параметри, найважливішими з яких є:
robx: оцінка, надана маркеру, який раніше не бачив. robx - це ймовірність того, що
токен спам.
robs: вага на robx, яка переміщує ймовірність малопомітного маркера до robx.
min-dev: мінімальна відстань від .5 для використання маркерів у обчисленні. Тільки жетони
використовуються далі від 0.5, ніж це значення.
spam-cutoff: повідомлення з балами, більшими або рівними, будуть позначені як спам.
ham-cutoff: якщо нульовий або спам-відключення, усі повідомлення зі значеннями строго нижче спаму
позначено як хам, всі інші як спам (з двома станами). Інші значення менші або рівні
ham-cutoff позначено як ham, повідомлення зі значеннями строго між ham-cutoff і
відключення спаму позначено як невпевнене; решта як спам (тридержавний)
sp-esf: коефіцієнт ефективного розміру (ESF) для спаму.
ns-esf: ESF для неспаму. Ці значення ESF за замовчуванням мають значення 1.0, що те саме, що ні
використання ESF в розрахунках. Можуть бути значення, відповідні кількості електронної пошти користувача
визначається за допомогою програми bogotune.
ВАРІАНТИ
ВАРИАНТИ ДОПОМОГИ
Команда -h параметр друкує довідкове повідомлення та виходить.
Команда -V параметр друкує номер версії та виходить.
Команда -Q Параметр (запит) друкує конфігурацію bogofilter, тобто параметри реєстрації,
параметри розбору, каталог bogofilter тощо.
ВАРИАНТИ КЛАСИФІКАЦІЇ
Команда -p (passthrough) параметр виводить повідомлення з рядком X-Bogosity в кінці
заголовок повідомлення. Це вимагає збереження всього повідомлення в пам’яті під час його читання
stdin (або з труби чи розетки). Якщо повідомлення прочитано з файлу, який можна перемотати,
bogofilter прочитає його вдруге.
Команда -e Опція (вбудовувати) повідомляє bogofilter вийти з кодом 0, якщо повідомлення може бути
класифіковано, тобто якщо немає помилки. Зазвичай bogofilter використовує різні коди для
спам, шинка та невпевнені класифікації, але це спрощує використання bogofilter із procmail
або maildrop.
Команда -t Опція (коротко) повідомляє bogofilter надрукувати скорочене повідомлення про спамі
містить 1 літеру та оцінку. Спам позначається символом "Y", ham - "N", а "не впевнений" - символом
"U". Примітка: форматування можна налаштувати за допомогою файлу конфігурації.
Команда -T забезпечує інваріантний короткий режим для використання сценаріїв. bogofilter надрукує файл
скорочене повідомлення про спам, що містить 1 літеру та оцінку. Спам позначається
"S", шинка на "H", а не впевнений на "U".
Команда -ТТ забезпечує інваріантний короткий режим для використання сценаріїв. Bogofilter друкує тільки
оцінка і відображає її до 16 значущих цифр.
Команда -u Опція повідомляє bogofilter зареєструвати текст повідомлення після класифікації його як спаму
або не спам. Спам-повідомлення буде зареєстровано в списку спаму, а повідомлення, що не є спамом
список товарів. Якщо класифікація «невпевнена», повідомлення не буде зареєстровано.
Фактично ця опція запускає bogofilter з -s or -n прапор, відповідно. Обережність є
закликає використовувати цю можливість, оскільки будь-які помилки класифікації bogofilter можуть допустити
зберігатиметься та накопичуватиметься, доки не буде виправлено вручну за допомогою -Сн та -Нс варіант
комбінації. Зауважте, що цей параметр відкриває базу даних для доступу до запису, що
може спричинити значне уповільнення через боротьбу за блокування та синхронні операції введення-виводу.
Команда -H Опція вказує bogofilter не позначати маркери із заголовка. Цей варіант для
тестування, ви не повинні використовувати його в звичайній роботі.
Команда -M Опція вказує bogofilter обробляти свій вхід як файл у форматі mbox. Якщо -v or
-t також дано опцію, рядок спаму буде надруковано для кожного повідомлення.
Команда -b Параметр (потоковий режим масової передачі) вказує bogofilter класифікувати декілька об’єктів, чиї
імена читаються зі стандартного входу. Якщо -v or -t також надається параметр, bogofilter надрукує a
рядок із назвою файлу та інформацією про класифікацію кожного файлу. Це альтернатива
до -B який перераховує об’єкти в командному рядку.
Об’єктом у цьому контексті має бути maildir (автовиявлений), або, якщо це не maildir,
одна пошта, якщо -M дається - в такому випадку він обробляється як mbox. (Довжина вмісту:
заголовок наразі не враховується.)
Під час читання формату mbox bogofilter спирається на порожній рядок після листа. При необхідності,
formail -є забезпечить, що це так.
Команда -B об'єкт ... (масовий режим) опція повідомляє bogofilter класифікувати декілька названих об'єктів
в командному рядку. Об’єктами можуть бути імена файлів (для окремих повідомлень), поштові скриньки (файли
з кількома повідомленнями) або каталогами (формату maildir і MH). Якщо -v or -t варіант
також вказано, bogofilter надрукує рядок із назвою файлу та його класифікацією
інформацію для кожного файлу. Це альтернатива -b який перераховує об'єкти на stdin.
Команда -R Опція вказує bogofilter виводити кадр даних R у текстовій формі за стандартом
вихід. Додаткову інформацію дивіться у розділі про інтеграцію з R нижче.
ВАРИАНТИ РЕЄСТРАЦІЇ
Команда -s Опція вказує bogofilter зареєструвати текст, представлений як спам. База даних є
створюється за відсутності.
Команда -n Опція вказує bogofilter зареєструвати текст, представлений як неспам.
Bogofilter не визначає, чи зареєстроване повідомлення двічі. Якщо ви зробите це випадково, то
кількість маркерів зменшиться на 1 від того, що ви дійсно хочете, і відповідні бали за спам
буде злегка відключений. З огляду на велику кількість лексем і повідомлень у списку слів, це
не має значення. Проблема може виправити за допомогою -S опція або -N варіант.
Команда -S Опція вказує bogofilter скасувати попередню реєстрацію того самого повідомлення як спаму.
Якщо повідомлення було неправильно введено як спам від -s or -u і ви хочете видалити його і
введіть його як неспам, використовуйте -Сн. Якщо -S використовується для повідомлення, яке не було зареєстровано як спам,
кількість все одно буде зменшена.
Команда -N Опція вказує bogofilter скасувати попередню реєстрацію того самого повідомлення як
не спам. Якщо повідомлення було неправильно введено як неспам -n or -u і ти хочеш
видаліть його та введіть як спам, а потім використовуйте -Нс. Якщо -N використовується для повідомлення, яке не було
зареєстровані як неспам, кількість все одно буде зменшена.
ЗАГАЛЬНІ ВАРІАНТИ
Команда -c ім'я файлу Опція повідомляє bogofilter читати файл конфігурації з ім'ям.
Команда -C параметр забороняє bogofilter читати файли конфігурації.
Команда -d реж Опція дозволяє встановити каталог для бази даних. Дивіться довкілля
розділ для інших параметрів налаштування каталогу.
Команда -k розмір кешу Параметр встановлює розмір кешу для підсистеми BerkeleyDB в одиницях 1
МіБ (1,048,576 XNUMX XNUMX байт). Правильний розмір кешу покращує продуктивність bogofilter. The
рекомендований розмір становить одну третину розміру файлу бази даних. Ви можете запустити bogotune
скрипт (у каталозі налаштування), щоб визначити рекомендований розмір.
Команда -l Параметр записує інформаційний рядок до системного журналу кожного разу, коли запускається bogofilter.
Записана інформація залежить від того, як запущено bogofilter.
Команда -L тег Параметр налаштовує тег, який можна включити в інформацію, що реєструється
по -l опція, але наразі для цього потрібен користувацький формат, який містить рядок %l.
Цей варіант має на увазі -l.
Команда -I ім'я файлу Параметр скоріше вказує bogofilter читати вхідні дані із зазначеного файлу
ніж від stdin.
Команда -O ім'я файлу Параметр вказує bogofilter, куди записати його вихід у режимі проходження.
Зауважте, що це працює лише тоді, коли -p явно вказано.
ПАРАМЕТРІВ
Команда -E значення[,значення] Опція дозволяє встановити значення sp-esf і значення ns-esf. З двома
встановлені значення як sp-esf, так і ns-esf. Якщо вказано лише одне значення, параметри задаються як
описано в примітці нижче.
Команда -m значення[,значення][,значення] Параметр дозволяє встановити значення min-dev і, за бажанням, значення
значення robs і robx. З трьома значеннями min-dev, robs і robx встановлені. Якщо менше
надаються значення, параметри встановлюються, як описано в примітці нижче.
Команда -o значення[,значення] Опція дозволяє встановлювати значення виключення спаму. З двома
значення, встановлені як spam-cutoff, так і ham-cutoff. Якщо вказано лише одне значення, параметри
встановлюються, як описано в примітці нижче.
Примітка. Усі ці параметри дозволяють надавати менше значень. Значення можна пропускати
використовуючи лише роздільник коми, у цьому випадку відповідного параметра(ів) не буде
змінився. Якщо вказано лише перше значення, то встановлюється лише перший параметр.
Кінцеві значення можна пропустити, і в цьому випадку відповідні параметри не будуть
змінився. У списку параметрів не допускаються пробіли після ком.
ІНФОРМАЦІЯ
Команда -v Опція створює звіт для стандартного виводу про аналіз вхідних даних bogofilter.
Кожен додатковий v збільшить багатослівність виводу, максимум до 4. З
-вв, у звіті перелічено маркери з найбільшим відхиленням від середнього 0.5 зв’язку
зі спамом.
варіант -y дата може використовуватися для заміни поточної дати під час міток часу. Значення
нуля (0) вимикає позначку часу.
Команда -D параметр перенаправляє вихід налагодження на стандартний вихід.
Команда -x прапори Опція дозволяє встановити прапорці налагодження для друку налагоджувальної інформації. Побачити
заголовний файл debug.h для списку прапорів, які можна використовувати.
ПАРАМЕРИ КОНФІГУВАЛЬНОГО ФАЙЛУ
Використання GNU longopt -- синтаксис, файл конфігурації name = value оператор стає командним рядком
--параметр=значення. Використовуйте команду богофільтр --допомога список опцій і див
bogofilter.cf.example для отримання додаткової інформації про них. Наприклад, щоб змінити заголовок X-Bogosity
до "X-Spam-Header", використовуйте:
--spam-header-name=X-Spam-Header
НАВКОЛИШНЄ СЕРЕДОВИЩЕ
Bogofilter використовує каталог бази даних, який можна встановити у файлі конфігурації. Якщо не встановлено
там bogofilter використовуватиме значення BOGOFILTER_DIR. Обидва можна замінити за допомогою -d
реж варіант. Якщо нічого з цього немає, bogofilter використовуватиме каталог $HOME/.bogofilter.
КОНФІГУРАЦІЯ
Командний рядок bogofilter дозволяє налаштувати багато параметрів, які визначають, як bogofilter
діє. Файл /etc/bogofilter.cf можна використовувати для встановлення додаткових параметрів, які впливають на його
операція. Файл /etc/bogofilter.cf.example містить зразки всіх параметрів. Статус
і повідомлення журналу можна налаштувати для кожного сайту.
ПОВЕРНЕННЯ ЗНАЧЕННЯ
0 для спаму; 1 для неспаму; 2 для невпевненості; 3 для помилок введення-виведення або інших помилок.
Якщо обоє -p та -e використовуються, повертаються значення: 0 для спаму або неспаму; 3 для введення-виведення або
інші помилки.
Помилка 3 зазвичай означає, що файл списку слів bogofilter хоче прочитати під час запуску
відсутній або жорсткий диск заповнений -p Режим.
ІНТЕГРАЦІЯ З ІНШІ ЗАСОБИ
Використовуйте з procmail
Наступний рецепт (a) збирає все, що bogofilter оцінює як спам, (b) реєструє
слова в повідомленнях, які оцінені як спам, і (c) реєструє слова в повідомленнях, які оцінені як спам
як не спам як такий. Якщо це встановлено, зазвичай це буде потрібно лише користувачеві
втручатися (з -Нс or -Сн), коли bogofilter неправильно класифікує щось.
# фільтруйте пошту через bogofilter, позначаючи її як Хам, Спам або Невпевнений,
# та оновлення списку слів
:0fw
| богофільтр -у -е -п
# якщо bogofilter вийшов з ладу, повернути пошту в чергу;
# MTA спробує доставити його пізніше
№ 75 - це значення для EX_TEMPFAIL в /usr/include/sysexits.h
:0e
{ EXITCODE=75 ХОСТ }
# подайте пошту до spam-bogofilter, якщо це спам.
: 0:
* ^X-Bogosity: Спам, тести=bogofilter
спам-богофільтр
# відправити лист до unsure-bogofilter
# якщо це не шинка і не спам.
: 0:
* ^X-Bogosity: не впевнений, тести=bogofilter
unsure-bogofilter
# За цим рецептом ви можете тренувати богофільтр, починаючи з порожнього
# список слів. Обов’язково перевіряйте свою невпевнену папку регулярно, візьміть
# повідомлення, класифікуйте їх як хам (або спам) і використовуйте для цього
# богофільтр поїзда.
Наступне правило procmail прийматиме пошту на stdin і зберігає її у файлі спаму, якщо bogofilter
вважає, що це спам:
:0HB:
* ? богофільтр
спам
і це подібне правило також зареєструє токени в пошті відповідно до
класифікація богофільтрів:
:0HB:
* ? богофільтр -у
спам
Якщо bogofilter не працює (повертає 3), повідомлення розглядатиметься як неспам.
Це для maildrop, він автоматично відкладає пошту та повторює спробу пізніше, коли
Команда xfilter не працює, використовуйте її у своєму ~/.mailfilter:
xfilter "bogofilter -u -e -p"
if (/^X-Bogosity: Спам, tests=bogofilter/)
{
до "spam-bogofilter"
}
Наступні рядки .muttrc створять макроси mutt для відправлення пошти до bogofilter.
індекс макросу d" скинути ключ очікування\n\
богофільтр -n\n\
встановити клавішу очікування\n\
" "видалити повідомлення як неспам"
індекс макросу \ed " скинути ключ очікування\n\
bogofilter -s\n\
встановити клавішу очікування\n\
" "видалити повідомлення як спам"
Інтеграція з Mail Transport Agent (MTA)
1. bogofilter також можна інтегрувати в MTA для фільтрації всієї вхідної пошти. У той час як
конкретна реалізація залежить від MTA, загальні кроки такі:
2. Встановіть bogofilter на поштовий сервер
3. Заповніть бази даних bogofilter корпусом спаму та неспаму. Оскільки богофільтр буде
щоб обслуговувати більшу спільноту, важливо доповнити її репрезентативним набором
повідомлень.
4. Налаштуйте MTA для виклику bogofilter для кожного повідомлення. Хоча це специфіка MTA
крок, вам, ймовірно, доведеться скористатися -p, -u та -e Варіанти.
5. Налаштуйте механізм реєстрації користувачів спамом/неспамом, а також виправлення
неправильні класифікації. Найбільш загальним рішенням є встановлення псевдонімів електронних адрес
які користувачі повертають повідомлення.
6. Для отримання додаткової інформації див. каталоги doc та contrib.
Використання R для перевірки розрахунків bogofilter
Параметр -R повідомляє bogofilter генерувати кадр даних R. Фрейм даних містить один
рядок на проаналізований маркер. Кожен такий рядок містить токен, суму його бази даних "добре"
і кількість "спаму", кількість "хороших" повідомлень, поділена на кількість повідомлень, які не є спамом, які використовуються для
створити навчальну базу даних, кількість "спаму", поділена на кількість спам-повідомлень,
f(w) Робінсона для маркера, натуральні логарифми (1 - f(w)) і f(w), а також індикатор
символ (+ якщо значення f(w) маркера перевищило мінімальне відхилення від 0.5, - якщо воно
не зробив). У кінці таблиці є один додатковий рядок, який містить мітку в
поле лексеми, за яким слідує кількість фактично використаних слів (з індикаторами +),
Значення P, Q, S, s і x Робінсона та мінімальне відхилення.
Фрейм даних R можна зберегти у файл і пізніше прочитати в сеансі R (див R
проект сайт[5] для інформації про математичний пакет R). Забезпечується
Дистрибутив bogofilter — це простий R-скрипт (файл bogo.R), який можна використовувати для перевірки
розрахунки богофільтра. Інструкція з його використання включена в скрипт у формі
коментарів.
ВХІД ПОВІДОМЛЕННЯ
Bogofilter записує повідомлення в системний журнал, коли -l використовується варіант. Що написано
залежить від того, які інші прапори використовуються.
Буде створено запуск класифікації (тут ми не показуємо дату та частину хоста):
bogofilter[1412]: X-Bogosity: Ham, spamicity=0.000227
bogofilter[1415]: X-Bogosity: спам, спам=0.998918
використання -u щоб класифікувати повідомлення та оновити список слів, створить один рядок:
bogofilter[1426]: X-Bogosity: Спам, спам=0.998918,
реєстр -s, 329 слів, 1 повідомлення
Реєстрація слів (-l та -s, -n, -Sабо -N) вироблятиме:
bogofilter[1440]: реєстр-n, 255 слів, 1 повідомлення
Запуск реєстрації (з використанням -s, -n, -Nабо -S) створюватиме такі повідомлення:
bogofilter[17330]: реєстр-n, 574 слів, 3 повідомлення
bogofilter[6244]: реєстри, 1273 слова, 4 повідомлення
Використовуйте bogofilter-sqlite онлайн за допомогою сервісів onworks.net