Ini adalah perintah bogofilter-sqlite yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
bogofilter - filter spam Bayesian yang cepat
RINGKASAN
bogofilter [opsi bantuan | opsi klasifikasi | opsi pendaftaran |
opsi parameter | opsi info] [opsi umum] [opsi file konfigurasi]
dimana
membantu Pilihan adalah:
[-h] [--bantuan] [-V] [-Q]
klasifikasi Pilihan adalah:
[-p] [-e] [-t] [-T] [-u] [-H] [-M] [-b] [-B obyek ...] [-R] [opsi umum]
[opsi parameter] [opsi file konfigurasi]
pendaftaran Pilihan adalah:
[-s | -n] [-S | -N] [opsi umum]
umum Pilihan adalah:
[-C nama file] [-C] [-D dir] [-k ukuran cache] [-II label] [-SAYA nama file] [-O nama file]
parameter Pilihan adalah:
[-E nilai[,nilai]] [-M nilai[,nilai][,nilai]] [-O nilai[,nilai]]
Info Pilihan adalah:
[-v] [-y tanggal] [-D] [-x bendera]
config fillet Pilihan adalah:
[--pilihan = nilai]
Catatan: Gunakan bogofilter --membantu untuk menampilkan daftar lengkap opsi.
DESKRIPSI
Bogofilter adalah filter spam Bayesian. Dalam mode operasi normal, dibutuhkan email
pesan atau teks lain pada input standar, melakukan pemeriksaan statistik terhadap daftar "baik"
dan kata-kata "buruk", dan mengembalikan kode status yang menunjukkan apakah pesan tersebut adalah spam atau bukan.
Bogofilter dirancang dengan algoritme cepat, menggunakan Berkeley DB untuk startup cepat dan
pencarian, dikodekan langsung dalam C, dan disetel untuk kecepatan, sehingga dapat digunakan untuk produksi oleh
situs yang memproses banyak surat.
TEORI OF OPERASI
Bogofilter memperlakukan inputnya sebagai sekantong token. Setiap token diperiksa terhadap daftar kata,
yang mempertahankan hitungan berapa kali hal itu terjadi di email non-spam dan spam.
Angka-angka ini digunakan untuk menghitung perkiraan probabilitas bahwa sebuah pesan di mana:
token yang terjadi adalah spam. Itu digabungkan untuk menunjukkan apakah pesan itu spam atau
daging.
Meskipun metode ini terdengar kasar dibandingkan dengan pendekatan pencocokan pola yang lebih umum, itu
ternyata sangat efektif. Makalah Paul Graham A Rencanakan Untuk Spam[1] direkomendasikan
bacaan.
Program ini secara substansial meningkatkan proposal Paul dengan melakukan analisis leksikal yang lebih cerdas.
Bogofilter melakukan decoding MIME yang tepat dan penguraian HTML yang masuk akal. Jenis khusus dari
token seperti nama host dan alamat IP dipertahankan sebagai fitur pengenalan daripada
putus hubungan. Berbagai jenis cruft MTA seperti tanggal dan ID pesan diabaikan agar tidak
untuk menggembungkan daftar kata. Token yang ditemukan di berbagai bidang header ditandai dengan tepat.
Peningkatan lainnya adalah program ini menawarkan modifikasi yang disarankan Gary Robinson untuk
perhitungan (lihat parameter robx dan robs di bawah). Modifikasi ini adalah
dijelaskan dalam makalah Robinson Spam Deteksi[2].
Sejak itu, Robinson (lihat artikel Jurnal Linux-nya A Statistik Pendekatan untuk itu Spam
Masalah[3]) dan lain-lain telah menyadari bahwa perhitungan dapat lebih dioptimalkan menggunakan
metode Fisher. Lain perbaikan[4] mengkompensasi redundansi token dengan menerapkan
memisahkan faktor ukuran efektif (ESF) untuk perhitungan probabilitas spam dan nonspam.
Singkatnya, begini cara kerjanya: Perkiraan probabilitas spam individu
token digabungkan menggunakan "fungsi kai kuadrat terbalik". Nilainya menunjukkan seberapa buruk
hipotesis nol bahwa pesan tersebut hanyalah kumpulan acak dari kata-kata independen dengan
probabilitas yang diberikan oleh perkiraan kami sebelumnya gagal. Fungsi ini sangat sensitif terhadap
probabilitas kecil (kata-kata hammish), tetapi tidak dengan probabilitas tinggi (kata-kata spam); jadi
nilai hanya menunjukkan tanda hammish yang kuat dalam sebuah pesan. Sekarang menggunakan kebalikan
probabilitas untuk token, perhitungan yang sama dilakukan lagi, memberikan indikator bahwa
sebuah pesan terlihat sangat spam. Akhirnya, kedua indikator tersebut dikurangi (dan
diskalakan menjadi interval 0-1). Indikator gabungan ini (bogositas) mendekati 0 jika tanda-tandanya
untuk pesan hammish lebih kuat daripada untuk pesan spam dan mendekati 1 jika
situasinya adalah sebaliknya. Jika tanda untuk keduanya sama kuat, nilainya adalah
dekat 0.5. Karena pesan itu tidak memberikan indikasi yang jelas, ada mode tristate di
bogofilter untuk menandai pesan tersebut sebagai tidak yakin, sedangkan pesan yang jelas ditandai sebagai spam
atau ham, masing-masing. Dalam mode dua keadaan, setiap pesan ditandai sebagai spam atau ham.
Berbagai parameter mempengaruhi perhitungan ini, yang paling penting adalah:
robx: skor yang diberikan untuk token yang belum pernah dilihat sebelumnya. robx adalah probabilitas bahwa
tokennya spam.
robs: bobot pada robx yang menggerakkan kemungkinan token yang terlihat kecil menuju robx.
min-dev: jarak minimum dari .5 untuk token yang digunakan dalam perhitungan. Hanya token
lebih jauh dari 0.5 dari nilai ini digunakan.
spam-cutoff: pesan dengan skor lebih besar atau sama dengan akan ditandai sebagai spam.
ham-cutoff: Jika nol atau spam-cutoff, semua pesan dengan nilai di bawah batas spam
ditandai sebagai ham, yang lainnya sebagai spam (dua status). Nilai lain kurang dari atau sama dengan
ham-cutoff ditandai sebagai ham, pesan dengan nilai ketat antara ham-cutoff dan
batas spam ditandai sebagai tidak yakin; sisanya sebagai spam (tristate)
sp-esf: faktor ukuran efektif (ESF) untuk spam.
ns-esf: ESF untuk nonspam. Nilai ESF ini default ke 1.0, yang sama dengan not
menggunakan ESF dalam perhitungan. Nilai yang sesuai dengan populasi email pengguna dapat berupa
ditentukan dengan bantuan program bogotune.
PILIHAN
OPSI BANTUAN
-h opsi mencetak pesan bantuan dan keluar.
-V opsi mencetak nomor versi dan keluar.
-Q (query) opsi mencetak konfigurasi bogofilter, yaitu parameter registrasi,
opsi parsing, direktori bogofilter, dll.
PILIHAN KLASIFIKASI
-p (passthrough) opsi menampilkan pesan dengan garis X-Bogositas di akhir
judul pesan. Ini membutuhkan penyimpanan seluruh pesan dalam memori saat dibaca dari
stdin (atau dari pipa atau soket). Jika pesan dibaca dari file yang dapat diputar ulang,
bogofilter akan membacanya untuk kedua kalinya.
-e (embed) opsi memberitahu bogofilter untuk keluar dengan kode 0 jika pesannya bisa
diklasifikasikan, yaitu jika tidak ada kesalahan. Biasanya bogofilter menggunakan kode yang berbeda untuk
klasifikasi spam, ham, dan tidak pasti, tetapi ini menyederhanakan penggunaan bogofilter dengan procmail
atau kiriman surat.
-t Opsi (singkat) memberitahu bogofilter untuk mencetak pesan spam yang disingkat
berisi 1 huruf dan skor. Spam ditandai dengan "Y", ham dengan "N", dan tidak pasti oleh
"Kamu". Catatan: pemformatan dapat disesuaikan menggunakan file konfigurasi.
-T menyediakan mode singkat yang invarian untuk digunakan skrip. bogofilter akan mencetak
disingkat spamicity message yang berisi 1 huruf dan skor. Spam ditandai dengan
"S", ham dengan "H", dan tidak yakin dengan "U".
-TT menyediakan mode singkat yang invarian untuk digunakan skrip. Bogofilter hanya mencetak
skor dan menampilkannya ke 16 angka penting.
-u opsi memberitahu bogofilter untuk mendaftarkan teks pesan setelah mengklasifikasikannya sebagai spam
atau bukan spam. Pesan spam akan terdaftar di daftar spam dan pesan non-spam di
daftar yang bagus. Jika klasifikasi "tidak yakin", pesan tidak akan didaftarkan.
Secara efektif opsi ini menjalankan bogofilter dengan -s or -n bendera, sebagaimana mestinya. Perhatian adalah
didesak dalam penggunaan kemampuan ini, karena kesalahan klasifikasi apa pun yang mungkin dilakukan bogofilter akan
dipertahankan dan akan terakumulasi sampai dikoreksi secara manual dengan -Sn dan -Ns Option
kombinasi. Perhatikan opsi ini menyebabkan database dibuka untuk akses tulis, yang
dapat menyebabkan perlambatan besar melalui pertikaian kunci dan operasi I/O sinkron.
-H option memberitahu bogofilter untuk tidak menandai token dari header. Opsi ini untuk
pengujian, Anda tidak boleh menggunakannya dalam operasi normal.
-M option memberitahu bogofilter untuk memproses inputnya sebagai file berformat mbox. jika -v or
-t pilihan juga diberikan, garis spamisitas akan dicetak untuk setiap pesan.
-b (mode streaming massal) memberi tahu bogofilter untuk mengklasifikasikan beberapa objek yang
nama dibaca dari stdin. jika -v or -t opsi juga diberikan, bogofilter akan mencetak
baris memberikan nama file dan informasi klasifikasi untuk setiap file. Ini adalah alternatif
untuk -B yang mencantumkan objek pada baris perintah.
Objek dalam konteks ini adalah maildir (terdeteksi secara otomatis), atau jika bukan maildir, a
satu surat kecuali -M diberikan - dalam hal ini diproses sebagai mbox. (Panjang Konten:
header tidak diperhitungkan saat ini.)
Saat membaca format mbox, bogofilter bergantung pada baris kosong setelah email. Jika diperlukan,
surat -es akan memastikan hal ini terjadi.
-B obyek ... (mode massal) opsi memberitahu bogofilter untuk mengklasifikasikan beberapa objek bernama
pada baris perintah. Objek dapat berupa nama file (untuk pesan tunggal), kotak surat (file
dengan beberapa pesan), atau direktori (dari format maildir dan MH). jika -v or -t Option
juga diberikan, bogofilter akan mencetak baris yang memberikan nama file dan klasifikasi
informasi untuk setiap file. Ini adalah alternatif untuk -b yang mencantumkan objek di stdin.
-R opsi memberitahu bogofilter untuk menampilkan bingkai data R dalam bentuk teks pada standar
keluaran. Lihat bagian tentang integrasi dengan R, di bawah, untuk detail lebih lanjut.
OPSI PENDAFTARAN
-s opsi memberitahu bogofilter untuk mendaftarkan teks yang disajikan sebagai spam. databasenya adalah
dibuat jika tidak ada.
-n opsi memberitahu bogofilter untuk mendaftarkan teks yang disajikan sebagai non-spam.
Bogofilter tidak mendeteksi jika pesan terdaftar dua kali. Jika Anda melakukan ini secara tidak sengaja,
jumlah token akan berkurang 1 dari apa yang Anda inginkan dan skor spam yang sesuai
akan sedikit lepas. Mengingat sejumlah besar token dan pesan dalam daftar kata, ini
tidak masalah. Masalah bisa diperbaiki dengan menggunakan -S pilihan atau -N .
-S option memberitahu bogofilter untuk membatalkan pendaftaran sebelumnya dari pesan yang sama dengan spam.
Jika pesan salah dimasukkan sebagai spam oleh -s or -u dan Anda ingin menghapusnya dan
masukkan sebagai non-spam, gunakan -Sn. Jika -S digunakan untuk pesan yang tidak terdaftar sebagai spam,
hitungannya masih akan dikurangi.
-N opsi memberitahu bogofilter untuk membatalkan pendaftaran sebelumnya dari pesan yang sama seperti
bukan spam. Jika pesan salah dimasukkan sebagai bukan spam oleh -n or -u dan kamu ingin
hapus dan masukkan sebagai spam, lalu gunakan -Ns. Jika -N digunakan untuk pesan yang tidak
terdaftar sebagai non-spam, jumlah akan tetap dikurangi.
PILIHAN UMUM
-c nama file opsi memberitahu bogofilter untuk membaca file konfigurasi bernama.
-C opsi mencegah bogofilter membaca file konfigurasi.
-d dir opsi memungkinkan Anda untuk mengatur direktori untuk database. Lihat LINGKUNGAN
bagian untuk opsi pengaturan direktori lainnya.
-k ukuran cache opsi menetapkan ukuran cache untuk subsistem BerkeleyDB, dalam satuan 1
MiB (1,048,576 byte). Ukuran cache yang benar meningkatkan kinerja bogofilter. NS
ukuran yang disarankan adalah sepertiga dari ukuran file database. Anda dapat menjalankan bogotune
script (dalam direktori tuning) untuk menentukan ukuran yang disarankan.
-l option menulis baris informasi ke log sistem setiap kali bogofilter dijalankan.
Informasi yang dicatat tergantung pada bagaimana bogofilter dijalankan.
-L label opsi mengonfigurasi tag yang dapat dimasukkan dalam informasi yang dicatat
oleh -l opsi, tetapi memerlukan format khusus yang menyertakan string %l untuk saat ini.
Opsi ini menyiratkan -l.
-I nama file opsi memberitahu bogofilter untuk membaca inputnya dari file yang ditentukan, bukan
daripada dari stdin.
-O nama file opsi memberi tahu bogofilter tempat menulis outputnya dalam mode passthrough.
Perhatikan bahwa ini hanya berfungsi ketika -p diberikan secara eksplisit.
OPSI PARAMETER
-E nilai[,nilai] opsi memungkinkan pengaturan nilai sp-esf dan nilai ns-esf. Dengan dua
nilai, baik sp-esf dan ns-esf ditetapkan. Jika hanya satu nilai yang diberikan, parameter ditetapkan sebagai
dijelaskan dalam catatan di bawah ini.
-m nilai[,nilai][,nilai] opsi memungkinkan pengaturan nilai min-dev dan, secara opsional,
nilai robs dan robx. Dengan tiga nilai, min-dev, robs, dan robx sudah siap. Jika lebih sedikit
nilai diberikan, parameter ditetapkan seperti yang dijelaskan dalam catatan di bawah ini.
-o nilai[,nilai] opsi memungkinkan pengaturan nilai ham-cutoff spam-cutoff. Dengan dua
nilai, baik cutoff spam dan ham-cutoff ditetapkan. Jika hanya satu nilai yang diberikan, parameter
diatur seperti yang dijelaskan dalam catatan di bawah ini.
Catatan: Semua opsi ini memungkinkan lebih sedikit nilai yang akan diberikan. Nilai dapat dilewati oleh
hanya menggunakan pembatas koma, dalam hal ini parameter yang sesuai tidak akan
berubah. Jika hanya nilai pertama yang diberikan, maka hanya parameter pertama yang ditetapkan.
Nilai trailing dapat dilewati, dalam hal ini parameter yang sesuai tidak akan
berubah. Dalam daftar parameter, spasi tidak diperbolehkan setelah koma.
PILIHAN INFO
-v option menghasilkan laporan ke output standar pada analisis input bogofilter.
setiap tambahan v akan meningkatkan verbositas output, hingga maksimum 4. Dengan
-vv, laporan tersebut mencantumkan token dengan deviasi tertinggi dari rata-rata asosiasi 0.5
dengan spam.
pilihan -y tanggal dapat digunakan untuk mengganti tanggal saat ini ketika token cap waktu. Sebuah nilai
dari nol (0) mematikan timestamping.
-D opsi mengalihkan output debug ke stdout.
-x bendera opsi memungkinkan pengaturan flag debug untuk mencetak informasi debug. Lihat
file header debug.h untuk daftar flag yang dapat digunakan.
PILIHAN FILE KONFIGURASI
Menggunakan GNU longopt -- sintaks, file konfigurasi nama=nilai pernyataan menjadi baris perintah
--pilihan = nilai. Gunakan perintah bogofilter --membantu untuk daftar opsi dan lihat
bogofilter.cf.example untuk info lebih lanjut tentang mereka. Misalnya untuk mengubah header X-Bogositas
ke "X-Spam-Header", gunakan:
--nama-header-spam=X-Header-Spam
LINGKUNGAN
Bogofilter menggunakan direktori database, yang dapat diatur dalam file konfigurasi. Jika tidak disetel
di sana, bogofilter akan menggunakan nilai BOGOFILTER_DIR. Keduanya dapat ditimpa oleh -d
dir pilihan. Jika tidak ada yang tersedia, bogofilter akan menggunakan direktori $HOME/.bogofilter.
KONFIGURASI
Baris perintah bogofilter memungkinkan pengaturan banyak opsi yang menentukan cara bogofilter
beroperasi. File /etc/bogofilter.cf dapat digunakan untuk mengatur parameter tambahan yang mempengaruhinya
operasi. File /etc/bogofilter.cf.example memiliki sampel dari semua parameter. Status
dan pesan logging dapat disesuaikan untuk setiap situs.
KEMBALI NILAI
0 untuk spam; 1 untuk non-spam; 2 untuk tidak yakin; 3 untuk I/O atau kesalahan lainnya.
Jika keduanya -p dan -e digunakan, nilai yang dikembalikan adalah: 0 untuk spam atau non-spam; 3 untuk I/O atau
kesalahan lainnya.
Kesalahan 3 biasanya berarti bahwa file daftar kata yang ingin dibaca bogofilter saat startup adalah
hilang atau hard disk telah terisi -p mode.
INTEGRASI DENGAN LAIN ALAT
Gunakan dengan procmail
Resep berikut (a) tempat sampah spam apa pun yang dinilai bogofilter sebagai spam, (b) terdaftar
kata-kata dalam pesan yang dinilai sebagai spam, dan (c) mendaftarkan kata-kata dalam pesan yang diberi peringkat
sebagai non-spam seperti itu. Dengan ini di tempat, biasanya hanya diperlukan untuk pengguna
campur tangan (dengan -Ns or -Sn) ketika bogofilter salah mengkategorikan sesuatu.
# memfilter email melalui bogofilter, menandainya sebagai Ham, Spam, atau Tidak yakin,
# dan memperbarui daftar kata
:0fw
| bogofilter -u -e -p
# jika bogofilter gagal, kembalikan email ke antrian;
# MTA akan mencoba mengirimkannya nanti
# 75 adalah nilai untuk EX_TEMPFAIL di /usr/include/sysexits.h
:0e
{ KODE KELUAR=75 HOST }
# kirim email ke spam-bogofilter jika itu spam.
: 0:
* ^X-Bogositas: Spam, tes=bogofilter
spam-bogofilter
# kirim email ke sure-bogofilter
# jika itu bukan ham atau spam.
: 0:
* ^X-Bogositas: Tidak yakin, tes=bogofilter
tidak yakin-bogofilter
# Dengan resep ini, Anda dapat melatih bogofilter dimulai dengan yang kosong
# Daftar kata. Pastikan untuk memeriksa folder tidak yakin Anda secara teratur, ambil
# pesan darinya, klasifikasikan sebagai ham (atau spam), dan gunakan untuk
# kereta bogofilter.
Aturan procmail berikut akan mengambil email di stdin dan menyimpannya ke file spam jika bogofilter
mengira itu spam:
:0HB:
* ? bogofilter
Spam
dan aturan serupa ini juga akan mendaftarkan token dalam surat sesuai dengan
klasifikasi bogofilter:
:0HB:
* ? bogofilter -u
Spam
Jika bogofilter gagal (mengembalikan 3), pesan akan dianggap sebagai bukan spam.
Yang ini untuk pengiriman surat, secara otomatis menunda surat dan mencoba lagi nanti ketika
perintah xfilter gagal, gunakan ini di . Anda ~/.mailfilter:
xfilter "bogofilter -u -e -p"
if (/^X-Bogositas: Spam, tes=bogofilter/)
{
ke "spam-bogofilter"
}
Baris .muttrc berikut akan membuat makro mutt untuk mengirimkan email ke bogofilter.
indeks makro d " batalkan kunci_tunggu\n\
bogofilter -n\n\
setel kunci_tunggu\n\
" "hapus pesan sebagai bukan spam"
indeks makro \ed " batalkan kunci_tunggu\n\
bogofilter -s\n\
setel kunci_tunggu\n\
" "hapus pesan sebagai spam"
Integrasi dengan Mail Transport Agent (MTA)
1. bogofilter juga dapat diintegrasikan ke dalam MTA untuk menyaring semua email yang masuk. Selagi
implementasi khusus bergantung pada MTA, langkah-langkah umumnya adalah sebagai berikut:
2. Instal bogofilter di server email
3. Perdana database bogofilter dengan corpus spam dan non-spam. Karena bogofilter akan
melayani komunitas yang lebih besar, penting untuk menyiapkannya dengan perangkat yang representatif
dari pesan.
4. Atur MTA untuk memanggil bogofilter pada setiap pesan. Meskipun ini khusus MTA
langkah, Anda mungkin perlu menggunakan -p, -u, dan -e Pilihan.
5. Siapkan mekanisme bagi pengguna untuk mendaftarkan pesan spam/non-spam, serta untuk mengoreksi
salah klasifikasi. Solusi paling umum adalah mengatur alamat email alias ke
pengguna mana yang memantulkan pesan.
6. Lihat direktori doc dan contrib untuk informasi lebih lanjut.
Penggunaan R untuk memverifikasi perhitungan bogofilter
Opsi -R memberi tahu bogofilter untuk menghasilkan bingkai data R. Bingkai data berisi satu
baris per token dianalisis. Setiap baris tersebut berisi token, jumlah basis datanya "baik"
dan jumlah "spam", jumlah "baik" dibagi dengan jumlah pesan non-spam yang digunakan untuk
buat database pelatihan, jumlah "spam" dibagi dengan jumlah pesan spam,
f(w) Robinson untuk token, log natural (1 - f(w)) dan f(w), dan indikator
karakter (+ jika nilai f(w) token melebihi deviasi minimum dari 0.5, - jika
tidak). Ada satu baris tambahan di akhir tabel yang berisi label di
bidang token, diikuti dengan jumlah kata yang benar-benar digunakan (yang memiliki indikator +),
Nilai P, Q, S, s dan x Robinson dan deviasi minimum.
Bingkai data R dapat disimpan ke file dan kemudian dibaca ke dalam sesi R (lihat itu R
proyek situs web[5] untuk informasi tentang paket matematika R). Dilengkapi dengan
distribusi bogofilter adalah skrip R sederhana (file bogo.R) yang dapat digunakan untuk memverifikasi
perhitungan bogofilter. Petunjuk penggunaan disertakan dalam skrip dalam bentuk
komentar.
LOG PESAN
Bogofilter menulis pesan ke log sistem saat -l opsi digunakan. Apa yang tertulis
tergantung pada flag lain yang digunakan.
Proses klasifikasi akan dihasilkan (kami tidak menampilkan tanggal dan bagian host di sini):
bogofilter[1412]: X-Bogositas: Ham, spamisitas=0.000227
bogofilter[1415]: X-Bogositas: Spam, spamisitas=0.998918
Menggunakan -u untuk mengklasifikasikan pesan dan memperbarui daftar kata akan menghasilkan (satu baris tunggal):
bogofilter[1426]: Bogositas X: Spam, spamisitas=0.998918,
daftar -s, 329 kata, 1 pesan
Mencatat kata (-l dan -s, -n, -S, atau -N) akan menghasilkan:
bogofilter[1440]: register-n, 255 kata, 1 pesan
Proses pendaftaran (menggunakan -s, -n, -N, atau -S) akan menghasilkan pesan seperti:
bogofilter[17330]: register-n, 574 kata, 3 pesan
bogofilter[6244]: register-s, 1273 kata, 4 pesan
Gunakan bogofilter-sqlite online menggunakan layanan onworks.net