Ini adalah perintah dbacl 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
dbacl - pengklasifikasi Bayesian digram untuk pengenalan teks.
RINGKASAN
dbacl [-01dvnirmwMNDXW] [-T mengetik ] -l kategori [-H ukuran] [-H ukuran g] [-X desimal] [-Q
kualitas] [-w pesanan_maks] [-e deftok] [-O secara online] [-L mengukur] [-G regex] ...
[MENGAJUKAN]...
dbacl [-vnimNRX] [-h ukuran] [-T Tipe] -c kategori [-C kategori]... [-F menjaga]... [FILE]...
dbacl -V
GAMBARAN
dbacl adalah pengklasifikasi teks dan email Bayesian. Saat menggunakan -l beralih, ia mempelajari tubuh
teks dan menghasilkan file bernama kategori yang merangkum teks. Saat menggunakan -c
switch, ini membandingkan aliran teks input dengan sejumlah kategori file, dan output
nama pertandingan terdekat, atau opsional berbagai skor numerik dijelaskan di bawah ini.
Padahal halaman manual ini dimaksudkan sebagai referensi, ada beberapa tutorial dan
dokumen yang dapat Anda baca untuk mendapatkan informasi khusus. Dokumentasi khusus tentang
desain dbacl dan model statistik yang digunakannya dapat ditemukan di dbacl.ps. Untuk sebuah
gambaran umum dasar klasifikasi teks menggunakan dbacl, lihat tutorial.html. Tutorial pendamping
diarahkan penyaringan email adalah email.html. Jika Anda kesulitan mendapatkan dbacl ke
mengklasifikasikan dengan andal, baca is_it_working.html. Bagian PENGGUNAAN dari halaman manual ini juga
memiliki beberapa contoh.
/usr/share/doc/dbacl/dbacl.ps
/usr/share/doc/dbacl/tutorial.html
/usr/share/doc/dbacl/email.html
/usr/share/doc/dbacl/is_it_working.html
dbacl menggunakan model bahasa entropi maksimum (divergensi minimum) yang dibangun dengan hormat
ke ukuran referensi diagram (token yang tidak diketahui diprediksi dari diagram, yaitu pasangan
huruf). Secara praktis, ini berarti bahwa kategori dibangun dari token di
set pelatihan, sementara token yang sebelumnya tidak terlihat dapat diprediksi secara otomatis dari
surat. Token di sini adalah kata (fragmen) atau kombinasi kata (fragmen),
dipilih menurut berbagai sakelar. Belajar secara kasar bekerja dengan mengutak-atik token
probabilitas sampai data pelatihan paling tidak mengejutkan.
EXIT STATUS
Konvensi keluar Shell normal tidak diikuti (maaf!). Saat menggunakan -l Command
bentuk, dbacl mengembalikan nol pada keberhasilan, bukan nol jika terjadi kesalahan. Saat menggunakan -c bentuk,
dbacl mengembalikan bilangan bulat positif yang sesuai dengan kategori dengan posterior tertinggi
kemungkinan. Dalam kasus seri, kategori pertama yang paling mungkin dipilih. Jika kesalahan
terjadi, dbacl mengembalikan nol.
DESKRIPSI
Saat menggunakan -l bentuk perintah, dbacl mempelajari kategori ketika diberi satu atau lebih nama FILE,
yang harus berisi teks ASCII yang dapat dibaca. Jika tidak ada FILE yang diberikan, dbacl belajar dari STDIN. Jika
FILE adalah direktori, dibuka dan semua filenya dibaca, tetapi bukan subdirektorinya.
Hasilnya disimpan dalam file biner bernama kategori, dan sepenuhnya menggantikan apapun
konten sebelumnya. Untuk memudahkan, jika variabel lingkungan DBACL_PATH berisi a
direktori, maka itu ditambahkan ke jalur file, kecuali kategori dimulai dengan '/' atau a
'.'.
Teks input untuk pembelajaran diasumsikan sebagai teks biasa yang tidak terstruktur secara default. Ini
tidak cocok untuk mempelajari email, karena email berisi berbagai penyandian transpor dan
instruksi pemformatan yang dapat mengurangi efektivitas klasifikasi. Anda harus menggunakan -T
beralih dalam kasus itu sehingga dbacl tahu itu harus melakukan decoding dan penyaringan MIME
dan HTML yang sesuai. Nilai sakelar yang sesuai adalah "-T email" untuk input email RFC2822,
"-T html" untuk input HTML, "-T xml" untuk input gaya XML generik dan "-T teks" adalah
format teks biasa standar. Ada nilai lain dari -T saklar yang juga memungkinkan baik
penyetelan kemampuan decoding.
Saat menggunakan -c bentuk perintah, dbacl mencoba untuk mengklasifikasikan teks yang ditemukan di FILE, atau
STDIN jika tidak ada FILE yang diberikan. Setiap kemungkinan kategori harus diberikan secara terpisah, dan harus
nama file dari korpus teks yang dipelajari sebelumnya. Sebagai kemudahan, jika variabel
DBACL_PATH berisi direktori, itu ditambahkan ke setiap jalur file yang tidak dimulai
dengan '/' atau '.'. Output yang terlihat dari klasifikasi tergantung pada kombinasi
dari sakelar tambahan yang digunakan. Jika tidak ada sakelar yang digunakan, maka tidak ada keluaran yang ditampilkan pada STDOUT. Namun,
dbacl selalu menghasilkan kode keluar yang dapat diuji.
Untuk melihat output untuk klasifikasi, Anda harus menggunakan setidaknya salah satu dari -v,-U,-n,-N,-D,-d
saklar. Kadang-kadang, mereka dapat digunakan dalam kombinasi untuk menghasilkan variasi alami dari
output individu mereka. Kadang-kadang, dbacl juga menghasilkan peringatan pada STDERR jika berlaku.
-v switch menampilkan nama kategori terbaik di antara semua pilihan yang diberikan.
-U switch menampilkan nama kategori terbaik diikuti dengan persentase kepercayaan.
Biasanya, ini adalah sakelar yang ingin Anda gunakan. Persentase 100% berarti bahwa dbacl
yakin dengan pilihannya, sementara persentase 0% berarti beberapa kategori lain sama
mungkin. Ini bukan probabilitas model, tetapi mengukur seberapa jelas klasifikasinya
adalah, dan dapat digunakan untuk menandai klasifikasi yang tidak pasti (misalnya jika kepercayaannya 25% atau kurang).
-N switch mencetak setiap nama kategori diikuti dengan probabilitas (posterior), dinyatakan
sebagai persentase. Persentasenya selalu berjumlah 100%. Ini intuitif, tetapi hanya berharga
jika dokumen yang diklasifikasikan berisi beberapa token (sepuluh atau kurang). Secara umum
kasus dengan lebih banyak token, probabilitas selalu sangat dekat dengan 100% dan 0%.
-n switch mencetak setiap nama kategori diikuti dengan logaritma negatifnya
kemungkinan. Ini setara dengan menggunakan -N beralih, tetapi jauh lebih berguna. Terkecil
nomor memberikan kategori terbaik. Bentuk yang lebih nyaman adalah menggunakan keduanya -n dan -v yang
mencetak setiap nama kategori diikuti dengan entropi silang dan jumlah token yang dianalisis.
Cross entropy mengukur (dalam bit) tingkat kompresi rata-rata yang dapat dicapai,
di bawah model kategori yang diberikan, per token teks input. Jika Anda menggunakan ketiganya -n,-v,-X
maka nilai ekstra adalah output untuk setiap kategori, mewakili semacam nilai-p untuk masing-masing
skor kategori. Ini menunjukkan seberapa tipikal skor dibandingkan dengan pelatihan
dokumen, tetapi hanya berfungsi jika -X sakelar digunakan selama pembelajaran, dan hanya untuk beberapa
jenis model (misalnya email). Nilai-p ini terdistribusi secara seragam dan independen
(jika kategorinya bebas), maka dapat dikombinasikan menggunakan uji chi kuadrat Fisher untuk
mendapatkan nilai-p komposit untuk pengelompokan kategori.
-v dan -X switch bersama-sama mencetak setiap nama kategori diikuti dengan detail
dekomposisi skor kategori, difaktorkan ke dalam ( tingkat divergensi + entropi shannon
rate )* jumlah token @ nilai-p. Sekali lagi, ini hanya berfungsi di beberapa jenis model.
-v dan -U switch mencetak setiap nama kategori diikuti dengan dekomposisi dari
skor kategori menjadi (tingkat divergensi + tingkat entropi shannon # varians skor)* token
menghitung.
-D switch mencetak teks input yang dimodifikasi secara internal oleh dbacl sebelum
tokenisasi. Misalnya, jika dokumen email yang disandikan MIME diklasifikasikan, maka ini
mencetak teks yang diterjemahkan yang akan benar-benar tokenized dan diklasifikasikan. Saklar ini adalah
terutama berguna untuk debugging.
-d switch membuang token dan skor saat sedang dibaca. Ini berguna untuk
debugging, atau jika Anda ingin membuat representasi grafis dari klasifikasi. SEBUAH
penjelasan rinci tentang output berada di luar cakupan halaman manual ini, tetapi adalah
langsung jika Anda sudah membaca dbacl.ps. Variasi yang mungkin termasuk: -d Bersama -n
or -N.
Klasifikasi dapat dilakukan dengan satu atau beberapa kategori pada prinsipnya. Ketika dua atau lebih
kategori digunakan, probabilitas posterior Bayesian digunakan, mengingat teks input,
dengan distribusi sebelumnya yang seragam pada kategori. Untuk pilihan lain dari sebelumnya, lihat
utilitas pendamping bayesol(1). Ketika satu kategori digunakan, klasifikasi dapat dilakukan
dengan membandingkan skor dengan treshold. Namun dalam praktiknya, hasil yang jauh lebih baik adalah
diperoleh dengan beberapa kategori.
Pembelajaran dan pengklasifikasian tidak dapat dicampur pada pemanggilan perintah yang sama, namun ada
tidak ada masalah penguncian dan terpisah dbacl proses dapat beroperasi secara bersamaan dengan jelas
hasil, karena operasi file dirancang untuk menjadi atom.
Akhirnya, perhatikan bahwa dbacl tidak mengelola corpora dokumen Anda atau komputer Anda
kategori, dan khususnya tidak memungkinkan Anda untuk memperluas file kategori yang ada
dengan dokumen baru. Ini tidak seperti berbagai filter spam saat ini, yang dapat mempelajari hal baru
email secara bertahap. Batasan ini dbacl sebagian karena prosedur nonlinier
digunakan dalam algoritma pembelajaran, dan sebagian keinginan untuk meningkatkan fleksibilitas.
Anda dapat mensimulasikan efek pembelajaran tambahan dengan menyimpan dokumen pelatihan Anda ke dalam
arsip dan menambah arsip ini dari waktu ke waktu, belajar kembali dari awal secara berkala.
Belajar sebenarnya lebih cepat jika arsip ini dikompresi dan didekompresi dengan cepat
Saat dibutuhkan. Dengan tetap mengontrol arsip Anda, Anda tidak akan pernah kehilangan informasi di
kategori Anda, dan Anda dapat dengan mudah bereksperimen dengan sakelar atau tokenisasi yang berbeda atau
set dokumen pelatihan jika Anda suka.
SEKUNDER BERALIH
Secara default, dbacl mengklasifikasikan teks input secara keseluruhan. Namun, saat menggunakan -f pilihan,
dbacl dapat digunakan untuk memfilter setiap baris input secara terpisah, hanya mencetak baris yang
cocokkan satu atau lebih model yang diidentifikasi oleh menjaga (gunakan nama atau nomor kategori untuk merujuk ke a
kategori). Ini berguna jika Anda ingin memfilter beberapa baris, tetapi perhatikan bahwa jika baris
pendek, maka tingkat kesalahan bisa tinggi.
-e,-w,-g,-j switch digunakan untuk memilih skema tokenisasi yang sesuai. SEBUAH
token adalah kata atau fragmen kata atau kombinasi kata atau fragmen. Bentuk token
penting karena membentuk dasar model bahasa yang digunakan oleh dbacl. itu -e
switch memilih skema tokenisasi yang telah ditentukan sebelumnya, yang cepat tetapi terbatas. Itu -w
switch menentukan token komposit yang berasal dari -e mengalihkan. Misalnya, "-e alnum -w 2"
berarti token harus berupa fragmen kata alfanumerik yang digabungkan menjadi pasangan yang tumpang tindih
(bigram). Ketika -j switch digunakan, semua token diubah menjadi huruf kecil, yang
mengurangi jumlah kemungkinan token dan oleh karena itu konsumsi memori.
Jika -g switch digunakan, Anda dapat sepenuhnya menentukan seperti apa token itu
menggunakan ekspresi reguler. Beberapa -g sakelar dapat digunakan untuk membangun kompleks
skema tokenisasi, dan tanda kurung dalam setiap ekspresi dapat digunakan untuk memilih
fragmen dan menggabungkannya menjadi n-gram. Biaya fleksibilitas seperti itu berkurang
klasifikasi dan kecepatan belajar. Saat bereksperimen dengan skema tokenisasi, coba gunakan
itu -d or -D beralih saat belajar atau mengklasifikasikan, karena mereka akan mencetak token
secara eksplisit sehingga Anda dapat melihat fragmen teks apa yang diambil atau terlewatkan. Untuk reguler
sintaks ekspresi, lihat regex(7).
-h dan -H sakelar mengatur berapa banyak memori dbacl dapat digunakan untuk pembelajaran. Teks
klasifikasi dapat menggunakan banyak memori, dan secara default dbacl membatasi dirinya bahkan di
mengorbankan akurasi belajar. Dalam banyak kasus jika batas tercapai, pesan peringatan akan
dicetak di STDERR dengan beberapa saran.
Saat mempelajari kembali kategori yang sama beberapa kali, percepatan yang signifikan dapat diperoleh dengan
menggunakan -1 beralih, karena ini memungkinkan probabilitas yang dipelajari sebelumnya untuk dibaca dari
kategori dan digunakan kembali.
Perhatikan bahwa akurasi klasifikasi sangat tergantung pada jumlah dan kualitas
sampel pelatihan, dan kemudian hanya pada jumlah tweaking.
EXIT STATUS
Saat menggunakan -l bentuk perintah, dbacl mengembalikan nol pada kesuksesan. Saat menggunakan -c bentuk,
dbacl mengembalikan bilangan bulat positif (1,2,3 ...) yang sesuai dengan kategori dengan yang tertinggi
probabilitas posterior. Dalam kasus seri, kategori pertama yang paling mungkin dipilih. Jika
terjadi kesalahan, dbacl mengembalikan nol.
PILIHAN
-0 Saat belajar, mencegah preloading berat badan. Biasanya, dbacl memeriksa apakah kategori
file sudah ada, dan jika demikian, coba gunakan bobot yang ada sebagai permulaan
titik. Ini secara dramatis dapat mempercepat pembelajaran. jika -0 (nol) sakelar disetel,
kemudian dbacl berperilaku seolah-olah tidak ada file kategori yang sudah ada. Ini terutama berguna untuk
pengujian. Sakelar ini sekarang diaktifkan secara default, untuk melindungi dari penyimpangan berat badan
yang dapat mengurangi akurasi pada banyak iterasi pembelajaran. Menggunakan -1 untuk memaksa
pramuat.
-1 Memaksa pramuat bobot jika file kategori sudah ada. Lihat diskusi tentang
-0 saklar.
-a Tambahkan skor. Setiap baris input ditulis ke STDOUT dan skor dbacl adalah
ditambahkan. Ini berguna untuk postprocessing dengan bayesol(1). Untuk kemudahan
pemrosesan, setiap baris input asli diindentasi oleh satu spasi (untuk membedakan
mereka dari skor yang ditambahkan), dan garis dengan skor (jika -n digunakan) adalah
diawali dengan string "skor". Jika salinan kedua dari dbacl perlu baca ini
output nanti, itu harus dipanggil dengan -A saklar.
-d Buang parameter model ke STDOUT. Dalam hubungannya dengan -l pilihan, ini
menghasilkan ringkasan yang dapat dibaca manusia dari model entropi maksimum. Setara dengan
itu -c opsi, menampilkan kontribusi setiap token terhadap skor akhir.
Menekan semua output normal lainnya.
-e Pilih kelas karakter untuk tokenisasi default (bukan berbasis regex). Secara default,
token adalah string alfabet saja. Ini sesuai dengan kasus ketika deftok is
"alfa". Nilai yang mungkin untuk deftok adalah "alfa", "alnum", "grafik", "char", "cef"
dan "adp". Dua yang terakhir adalah tokenizer khusus yang ditujukan untuk pesan email. Melihat
juga isalpha(3). Tokenizer "char" mengambil satu karakter yang dapat dicetak sebagai gantinya
dari token yang lebih besar, dan dimaksudkan untuk pengujian saja.
-f Filter setiap baris input secara terpisah, hanya meneruskan ke STDOUT baris yang cocok dengan
kategori diidentifikasi sebagai menjaga. Opsi ini harus digunakan berulang kali untuk masing-masing
kategori yang harus dijaga. menjaga bisa jadi kategori nama file, atau a
bilangan bulat positif yang mewakili yang diperlukan kategori dalam urutan yang sama muncul di
baris perintah.
Jalur keluaran memerah segera setelah ditulis. Jika file input adalah pipa
atau perangkat karakter, maka upaya dilakukan untuk menggunakan mode buffering baris, jika tidak
buffering blok yang lebih efisien digunakan.
-g Pelajari hanya fitur yang dijelaskan oleh ekspresi reguler yang diperluas regex. Ini
menimpa metode pemilihan fitur default (lihat -w pilihan) dan belajar, untuk masing-masing
baris input, hanya token yang dibangun dari rangkaian string yang
cocok dengan subekspresi yang ditandai di dalam yang disediakan regex. Semua substring yang
pertandingan regex dalam akhiran setiap baris input diperlakukan sebagai fitur, bahkan jika
mereka tumpang tindih pada jalur input.
Sebagai kenyamanan opsional, regex dapat menyertakan akhiran ||xyz yang menunjukkan
subekspresi tanda kurung mana yang harus diberi tag. Pada kasus ini, xyz harus
secara eksklusif terdiri dari angka 1 hingga 9, yang menomori dengan tepat subekspresi yang
harus diberi tag. Atau, jika tidak ada tanda kurung di dalam regex, maka itu
diasumsikan bahwa seluruh ekspresi harus ditangkap.
-h Atur ukuran tabel hash menjadi 2^ukuran elemen. Saat menggunakan -l pilihan, ini
mengacu pada jumlah total fitur yang diizinkan dalam model entropi maksimum yang
terpelajar. Saat menggunakan -c pilihan bersama dengan -M sakelar dan tipe multinomial
kategori, ini mengacu pada jumlah maksimum fitur yang diperhitungkan selama
klasifikasi. Tanpa -M beralih, opsi ini tidak berpengaruh.
-i Mode yang sepenuhnya diinternasionalkan. Memaksa penggunaan karakter lebar secara internal, yang
diperlukan di beberapa tempat. Ini menimbulkan penalti kinerja yang nyata.
-j Membuat fitur peka huruf besar/kecil. Biasanya, semua fitur diubah menjadi huruf kecil
selama pemrosesan, yang mengurangi persyaratan penyimpanan dan meningkatkan statistik
perkiraan untuk kumpulan data kecil. Dengan opsi ini, kapitalisasi asli digunakan
untuk setiap fitur. Hal ini dapat meningkatkan akurasi klasifikasi.
-m Secara agresif memetakan kategori ke dalam memori dan menguncinya ke dalam RAM untuk mencegah
bertukar, jika memungkinkan. Ini berguna ketika kecepatan adalah yang terpenting dan memori
berlimpah, misalnya saat menguji pengklasifikasi pada kumpulan data besar.
Penguncian mungkin memerlukan batasan pengguna yang santai dengan batas(1). Tanyakan sistem Anda
administrator. Hati-hati saat menggunakan -m beralih bersama-sama dengan -o beralih, sebagai satu-satunya
satu proses dbacl harus mempelajari atau mengklasifikasikan sekaligus untuk mencegah kerusakan file. Jika
tidak ada pembelajaran yang terjadi, maka -m sakelar untuk mengklasifikasikan selalu aman digunakan.
Lihat juga diskusi untuk -o saklar.
-n Cetak skor untuk masing-masing kategori. Setiap skor adalah produk dari dua angka, the
lintas entropi dan kompleksitas teks input di bawah setiap model. dikalikan
bersama-sama, mereka mewakili probabilitas log bahwa input menyerupai model. Ke
lihat angka-angka ini secara terpisah, gunakan juga -v pilihan. Dalam hubungannya dengan -f
opsi, berhenti memfilter tetapi mencetak setiap baris input yang diawali dengan daftar skor
untuk baris itu.
-q Pilih kualitas pembelajaran, dimana kualitas bisa 1,2,3,4. Nilai yang lebih tinggi membutuhkan waktu lebih lama
untuk belajar, dan harus sedikit lebih akurat. Standarnya kualitas adalah 1 jika
file kategori tidak ada atau bobot tidak dapat dimuat sebelumnya, dan 2 sebaliknya.
-o Saat belajar, membaca/menulis sebagian jumlah token sehingga dapat digunakan kembali. Biasanya,
file kategori dipelajari dari data input yang diberikan, dan tidak mengandung
informasi asing. Saat opsi ini berlaku, beberapa informasi tambahan adalah
disimpan dalam file secara online, setelah semua input dibaca. Informasi ini dapat dibaca ulang
saat pembelajaran berikutnya terjadi, untuk melanjutkan di mana set data sebelumnya tertinggal
mati. Jika secara online tidak ada, itu dibuat. Jika secara online ada, sudah dibaca sebelumnya
pembelajaran, dan diperbarui setelahnya. Filenya kira-kira 3 kali lebih besar (pada
sedikit) daripada yang terpelajar kategori.
In dbacl, pembaruan file bersifat atomik, tetapi jika menggunakan -o beralih, dua atau lebih
proses tidak boleh belajar secara bersamaan, karena hanya satu proses yang akan menulis yang abadi
kategori dan dump memori. Itu -m switch juga dapat mempercepat pembelajaran online, tetapi
waspada terhadap kemungkinan korupsi. Hanya satu proses yang harus membaca atau menulis file. Ini
opsi ini ditujukan terutama untuk uji coba terkontrol.
-r Pelajari model referensi diagram saja. Melewati pembelajaran fitur tambahan di
korpus teks.
-v Modus verbose. Saat belajar, cetak detail perhitungan, kapan
mengklasifikasikan, mencetak nama yang paling mungkin kategori. Setara dengan
itu -n opsi, mencetak skor sebagai produk eksplisit dari entropi silang dan
kompleksitas.
-w Pilih fitur default menjadi n-gram hingga pesanan_maks. Ini tidak sesuai dengan
itu -g pilihan, yang selalu diutamakan. Jika tidak -w or -g pilihan yang diberikan,
dbacl mengasumsikan -w 1. Perhatikan bahwa n-gram untuk n lebih besar dari 1 tidak mengangkangi garis
istirahat secara default. Itu -S switch memungkinkan line straddling.
-x Tetapkan probabilitas penipisan menjadi 1 - 2^(-desim). Untuk mengurangi kebutuhan memori saat
pembelajaran, beberapa input dilewati secara acak, dan hanya sedikit yang ditambahkan ke model.
Perilaku yang tepat tergantung pada yang berlaku -T opsi (defaultnya adalah -T "teks"). Kapan
jenisnya bukan "email" (misalnya "teks"), maka fitur input individual ditambahkan dengan
kemungkinan 2^(-desim). Ketika jenisnya adalah "email", maka pesan input lengkapnya adalah
ditambah dengan peluang 2^(-desim). Dalam setiap pesan tersebut, semua fitur adalah
bekas.
-A Harapkan masukan dan skor menjorok. Dengan sakelar ini, dbacl mengharapkan jalur input menjadi
diindentasi oleh satu karakter spasi (yang kemudian dilewati). Garis dimulai dengan
karakter lain diabaikan. Ini adalah lawan dari -a beralih di atas.
Ketika digunakan bersama dengan -a beralih, dbacl menampilkan garis yang dilewati sebagaimana adanya,
dan memasukkan kembali ruang di depan setiap baris input yang diproses.
-D Mencetak keluaran debug. Jangan gunakan secara normal, tetapi bisa sangat berguna untuk menampilkan
daftar fitur yang diambil saat belajar.
-H Izinkan tabel hash tumbuh hingga maksimum 2^ukuran g elemen selama pembelajaran.
Ukuran awal diberikan oleh -h .
-L Pilih ukuran referensi diagram untuk transisi karakter. Itu mengukur dapat
salah satu dari "seragam", "dirichlet" atau "maxent". Standarnya adalah "seragam".
-M Angkatan perhitungan multinomial. Saat belajar, paksa fitur model menjadi
diperlakukan secara multinomial. Saat mengklasifikasikan, koreksi skor entropi untuk mencerminkan
probabilitas multinomial (hanya berlaku untuk model tipe multinomial, jika ada).
Skor akan selalu lebih rendah, karena urutan fitur hilang.
-N Cetak probabilitas posterior untuk masing-masing kategori. Ini mengasumsikan disediakan
kategori membentuk daftar kemungkinan yang lengkap. Dalam hubungannya dengan -f
opsi, berhenti memfilter tetapi mencetak setiap baris input yang diawali dengan ringkasan
distribusi posterior untuk garis itu.
-R Sertakan kategori tambahan untuk teks acak murni. Kategori ini disebut "acak".
Hanya masuk akal saat menggunakan -c .
-S Mengaktifkan line straddling. Ini berguna bersama dengan -w opsi untuk mengizinkan n-gram
untuk n > 1 untuk mengabaikan jeda baris, sehingga token kompleks dapat terus melewati akhir
garis. Ini tidak disarankan untuk email.
-T Menentukan format teks yang tidak standar. Secara default, dbacl mengasumsikan bahwa teks input adalah
file teks ASCII murni. Ini sesuai dengan kasus ketika mengetik adalah "teks".
Ada beberapa tipe dan subtipe yang dapat digunakan untuk membersihkan teks input dari
token asing sebelum pembelajaran atau klasifikasi yang sebenarnya terjadi. Setiap (sub) jenis
Anda ingin menggunakan harus ditunjukkan dengan terpisah -T opsi pada baris perintah,
dan secara otomatis menyiratkan jenis yang sesuai.
Jenis "teks" adalah untuk teks biasa yang tidak terstruktur. Tidak ada pembersihan yang dilakukan. Ini
default jika tidak ada tipe yang diberikan pada baris perintah.
Jenis "email" adalah untuk file input format mbox atau email RFC822 tunggal. Header
dikenali dan sebagian besar dilewati. Untuk menyertakan header standar RFC822 tambahan
(kecuali untuk tajuk jejak), gunakan subjenis "email: tajuk". Untuk memasukkan jejak
header, gunakan subtipe "email:thheaders". Untuk memasukkan semua header dalam email, gunakan
subtipe "email: xheaders". Untuk melewati semua header, kecuali subjek, gunakan
"email: noheader". Untuk memindai lampiran biner untuk string, gunakan "email:atts"
subtipe.
Ketika jenis "email" berlaku, markup HTML secara otomatis dihapus dari teks
lampiran kecuali teks/lampiran biasa. Untuk juga menghapus markup HTML dari biasa
lampiran teks, gunakan "email:noplain". Untuk mencegah penghapusan markup HTML di semua teks
lampiran, gunakan "email:polos".
Jenis "html" adalah untuk menghapus markup HTML (antara dan tag) dan
teks sekitarnya. Perhatikan bahwa jika jenis "email" diaktifkan, maka "html" adalah
diaktifkan secara otomatis hanya untuk lampiran pesan yang kompatibel.
Jenis "xml" seperti "html", tetapi tidak menghormati dan , dan tidak
menafsirkan tag (jadi ini harus lebih tepat disebut penghapusan "markup sudut", dan
tidak ada hubungannya dengan semantik XML yang sebenarnya).
Saat "html" diaktifkan, sebagian besar atribut markup hilang (untuk nilai 'paling' dekat
untuk semua'). Subtipe "html:links" memaksa url tautan untuk diuraikan dan dipelajari,
yang sebaliknya akan diabaikan. Subtipe "html:alt" memaksa penguraian
teks alternatif dalam atribut ALT dan berbagai tag lainnya. "html:skrip"
subtipe memaksa penguraian skrip, "html:styles" memaksa penguraian gaya,
"html:forms" memaksa penguraian nilai formulir, sementara "html:comments" memaksa penguraian
komentar HTML.
-U Cetak (U) ambiguitas. Ketika digunakan bersama dengan -v beralih, mencetak skor
diikuti oleh standar deviasi empiris mereka. Saat digunakan sendiri, hasil cetak terbaik
kategori, diikuti dengan perkiraan probabilitas bahwa pilihan kategori ini adalah
jelas. Lebih tepatnya, probabilitas mengukur kurangnya tumpang tindih CLT
interval kepercayaan untuk setiap skor kategori (Jika ada tumpang tindih, maka ada
kemenduaan).
Perkiraan probabilitas ini dapat digunakan sebagai tanda "tidak yakin", misalnya jika perkiraan
kemungkinannya lebih kecil dari 50%. Secara formal, skor 0% berarti kategori lain adalah
kemungkinan yang sama untuk diterapkan pada input, dan skor 100% berarti tidak ada kategori lain
mungkin berlaku untuk input. Perhatikan bahwa jenis kepercayaan ini tidak terkait dengan
itu -X mengalihkan. Juga, perkiraan probabilitas biasanya rendah jika dokumen tersebut
pendek, atau jika pesan berisi banyak token yang belum pernah dilihat sebelumnya
(hanya berlaku untuk ukuran diagram seragam).
-V Cetak nomor versi program dan keluar.
-W Suka -w, tetapi mencegah fitur mengangkangi baris baru. Lihat deskripsi dari -w.
-X Cetak kepercayaan dalam skor yang dihitung untuk masing-masing kategori, ketika digunakan bersama
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. -n or -N mengalihkan. Mempersiapkan model untuk skor kepercayaan, bila digunakan dengan
itu -l mengalihkan. Keyakinan adalah perkiraan kekhasan skor,
dengan asumsi hipotesis nol bahwa kategori yang diberikan benar. Ketika digunakan dengan
-v beralih saja, memfaktorkan skor sebagai divergensi empiris ditambah shannon
entropi, dikalikan dengan kompleksitas, dalam urutan itu. Itu -X sakelar tidak didukung di
semua model yang mungkin, dan menampilkan persentase "0.0" jika tidak dapat dihitung.
Perhatikan bahwa untuk dokumen yang tidak dikenal, cukup umum untuk memiliki kepercayaan yang dekat dengan
nol.
PENGGUNAAN
Untuk membuat dua file kategori di direktori saat ini dari dua file teks ASCII bernama
Mark_Twain.txt dan William_Shakespeare.txt masing-masing, ketik:
% dbacl -l duan Mark_Twain.txt
% dbacl -l goyang William_Shakespeare.txt
Sekarang Anda dapat mengklasifikasikan teks input, misalnya:
% echo "halo" | dbacl -v -c twain -c shake
kembar
% echo "menjadi atau tidak" | dbacl -v -c twain -c shake
menggoncangkan
Perhatikan bahwa -v opsi setidaknya diperlukan, jika tidak dbacl tidak mencetak apapun.
Nilai pengembaliannya adalah 1 dalam kasus pertama, 2 dalam kasus kedua.
% echo "menjadi atau tidak" | dbacl -v -N -c twain -c shake
kembar 22.63% goyang 77.37%
% echo "menjadi atau tidak" | dbacl -v -n -c twain -c goyang
kembar 7.04 * 6.0 kocok 6.74 * 6.0
Doa ini setara. Angka 6.74 dan 7.04 mewakili seberapa dekat
token rata-rata untuk setiap kategori, dan 6.0 adalah jumlah token yang diamati. jika kamu mau
untuk mencetak nilai kepercayaan sederhana bersama dengan kategori terbaik, ganti -v dengan -U.
% echo "menjadi atau tidak" | dbacl -U -c twain -c shake
kocok # 34%
Perhatikan bahwa probabilitas sebenarnya dari kategori menggoncangkan versus kategori kembar adalah 77.37%, tetapi
perhitungannya agak ambigu, dan 34% adalah keyakinan dari 100% bahwa
perhitungannya benar secara kualitatif.
Misalkan file document.txt berisi baris teks bahasa Inggris yang diselingi dengan garis noise. Ke
menyaring garis kebisingan dari garis bahasa Inggris, dengan asumsi Anda memiliki kategori yang ada
goyang katakan, ketik:
% dbacl -c shake -f shake -R document.txt > document.txt_eng
% dbacl -c shake -f random -R document.txt > document.txt_rnd
Perhatikan bahwa kualitas hasil akan bervariasi tergantung pada seberapa baik kategori bergoyang
dan acak mewakili setiap baris input. Terkadang berguna untuk melihat bagian belakang
probabilitas untuk setiap baris tanpa penyaringan:
% dbacl -c shake -f shake -RN document.txt > document.txt_probs
Anda sekarang dapat mem-postprocess probabilitas posterior untuk setiap baris teks dengan yang lain
script, untuk mereplikasi aturan keputusan Bayesian sewenang-wenang pilihan Anda.
Dalam kasus khusus tepat dua kategori, prosedur keputusan Bayesian yang optimal dapat
diimplementasikan untuk dokumen sebagai berikut: mari p1 menjadi probabilitas sebelumnya bahwa input
teks diklasifikasikan sebagai kategori1. Akibatnya, probabilitas sebelumnya untuk mengklasifikasikan sebagai
kategori2 adalah 1 - p1. Membiarkan u12 menjadi biaya kesalahan klasifikasi a kategori1 masukkan teks sebagai
milik kategori2 dan sebaliknya untuk u21. Kami berasumsi tidak ada biaya untuk mengklasifikasikan
benar. Kemudian perintah berikut mengimplementasikan keputusan Bayesian yang optimal:
%dbacl -n -c kategori1 -c kategori2 | awk '{ jika($2 * p1 * u12 > $4 * (1 - p1) * u21) {
cetak $1; } else { cetak $3; } }'
dbacl juga dapat digunakan bersama dengan procmail(1) untuk menerapkan Bayesian sederhana
sistem klasifikasi email. Asumsikan bahwa surat masuk harus dikirim secara otomatis
ke salah satu dari tiga folder email yang terletak di $MAILDIR dan bernama kerja, pribadi, dan Spam.
Awalnya, ini harus dibuat dan diisi dengan contoh email yang sesuai. SEBUAH crontab(1)
file dapat digunakan untuk mempelajari tiga kategori sekali sehari, mis
KUCING=$HOME/.dbacl
5 0 * * * dbacl -T email -l $CATS/pekerjaan $MAILDIR/pekerjaan
10 0 * * * dbacl -T email -l $CATS/pribadi $MAILDIR/pribadi
15 0 * * * dbacl -T email -l $CATS/spam $MAILDIR/spam
Untuk secara otomatis mengirimkan setiap email yang masuk ke folder yang sesuai, berikut ini:
procmailrc(5) fragmen resep dapat digunakan:
KUCING=$HOME/.dbacl
# jalankan pengklasifikasi spam
:0 c
YAY=| dbacl -vT email -c $KUCING/pekerjaan -c $KUCING/pribadi -c $KUCING/spam
# kirim ke kotak surat yang sesuai
: 0:
* ? tes -n "$YAY"
$MAILDIR/$YAY
: 0:
$ DEFAULT
Terkadang, dbacl akan mengirim email ke kotak surat yang salah. Dalam hal ini, kesalahan klasifikasi
pesan harus dihapus dari tujuan yang salah dan ditempatkan di kotak surat yang benar.
Kesalahan akan diperbaiki saat pesan Anda dipelajari berikutnya. Jika dibiarkan di
kategori yang salah, dbacl akan mempelajari statistik corpus yang salah.
Fitur teks default (token) dibaca oleh dbacl adalah string alfabet murni, yang
meminimalkan kebutuhan memori tetapi dapat menjadi tidak realistis dalam beberapa kasus. Untuk membangun model
berdasarkan token alfanumerik, gunakan -e mengalihkan. Contoh di bawah ini juga menggunakan opsi
-D switch, yang mencetak daftar token aktual yang ditemukan dalam dokumen:
% dbacl -e alnum -D -l twain Mark_Twain.txt | lebih sedikit
Dimungkinkan juga untuk mengganti metode pemilihan fitur default yang digunakan untuk mempelajari
model kategori melalui ekspresi reguler. Misalnya, berikut ini menduplikasi
metode pemilihan fitur default di lokal C, sementara jauh lebih lambat:
% dbacl -l twain -g '^([[:alpha:]]+)' -g '[^[:alpha:]]([[:alpha:]]+)' Mark_Twain.txt
Kategori kembar yang diperoleh hanya bergantung pada kata-kata alfabet tunggal dalam teks
file Mark_Twain.txt (dan statistik diagram yang dihitung untuk prediksi). sebentar
contoh, perintah berikut membangun model Markovian (kata bigram) yang dihaluskan yang
tergantung pada pasangan kata yang berurutan dalam setiap baris (tetapi pasangan tidak dapat mengangkangi satu baris
merusak):
% dbacl -l twain2 -g '(^|[^[:alpha:]])([[:alpha:]]+)||2' -g
'(^|[^[:alpha:]])([[:alpha:]]+)[^[:alpha:]]+([[:alpha:]]+)||23' Mark_Twain.txt
Lebih umum, model n-gram berbasis garis dari semua pesanan (hingga 7) dapat dibangun di serupa
cara. Untuk membuat model berbasis paragraf, Anda harus memformat ulang corpora input dengan
Wow(1) atau sed(1) untuk mendapatkan satu paragraf per baris. Ukuran garis dibatasi oleh yang tersedia
memori, tetapi perhatikan bahwa kinerja regex akan menurun dengan cepat untuk antrean panjang.
KINERJA
Asumsi yang mendasari pembelajaran statistik adalah bahwa sejumlah kecil
dokumen pelatihan dapat mewakili kumpulan dokumen masukan yang jauh lebih besar. Dengan demikian dalam jangka panjang
berjalan, pembelajaran dapat terhenti tanpa dampak serius pada akurasi klasifikasi. Ketika
tidak benar dalam kenyataan, asumsi ini sangat akurat untuk masalah seperti email
penyaringan. Dalam praktiknya, ini berarti bahwa korpus yang dipilih dengan baik di urutan sepuluh ribu
dokumen cukup untuk hasil yang sangat akurat selama bertahun-tahun. Terus belajar setelah
massa kritis seperti itu menghasilkan hasil yang semakin berkurang. Tentu saja, ketika input dunia nyata
pola dokumen berubah secara dramatis, kekuatan prediksi model bisa hilang. Pada
ujung yang lain, beberapa ratus dokumen sudah memberikan hasil yang dapat diterima dalam banyak kasus.
dbacl sangat dioptimalkan untuk kasus klasifikasi yang sering tetapi batch yang jarang
sedang belajar. Ini adalah optimal jangka panjang yang dijelaskan di atas. Dalam kondisi ideal, dbacl bisa
mengklasifikasikan seratus email per detik pada perangkat keras kelas bawah (500Mhz Pentium III). Sedang belajar
kecepatannya tidak terlalu lambat, tetapi membutuhkan waktu lebih lama secara efektif untuk dokumen besar
koleksi karena berbagai alasan. Saat menggunakan -m beralih, struktur data adalah
dipetakan secara agresif ke dalam memori jika memungkinkan, mengurangi overhead untuk I/O dan memori
alokasi.
dbacl membuang inputnya sesegera mungkin, dan tidak memiliki batasan pada dokumen input
ukuran. Baik klasifikasi dan kecepatan belajar berbanding lurus dengan jumlah
token di input, tetapi pembelajaran juga membutuhkan langkah optimasi nonlinier yang membutuhkan
waktu sebanding dengan jumlah token unik yang ditemukan. Pada saat menulis, dbacl is
salah satu filter email open source tercepat dengan skenario penggunaan yang optimal, tetapi menggunakan
lebih banyak memori untuk belajar daripada filter lainnya.
GANDA PROSES DAN DATA KORUPSI
Saat menyimpan file kategori, dbacl pertama menulis file sementara di lokasi yang sama,
dan menamainya setelah itu. Jika terjadi masalah atau crash selama pembelajaran, kategori lama
Oleh karena itu, file tidak tersentuh. Ini memastikan bahwa kategori tidak akan pernah rusak, tidak
peduli berapa banyak proses mencoba untuk secara bersamaan belajar atau mengklasifikasikan, dan berarti valid
kategori tersedia untuk klasifikasi setiap saat.
Saat menggunakan -m switch, isi file dipetakan memori untuk membaca dan menulis dengan cepat.
Ini, bersama dengan -o sakelar, dimaksudkan terutama untuk tujuan pengujian, ketika puluhan
ribuan pesan harus dipelajari dan dinilai di laboratorium untuk diukur dbacl's
ketepatan. Karena tidak ada penguncian file yang dicoba untuk alasan kinerja, korupsi adalah
mungkin, kecuali jika Anda memastikan bahwa hanya satu dbacl proses membaca atau menulis file apa pun
waktu yang diberikan. Ini adalah satu-satunya kasus (-m dan -o bersama-sama) ketika korupsi mungkin terjadi.
MEMORY GUNAKAN
Saat mengklasifikasikan dokumen, dbacl memuat semua kategori yang ditunjukkan ke dalam RAM, jadi totalnya
memori yang dibutuhkan kira-kira jumlah ukuran file kategori ditambah kecil tetap
atas. Dokumen input dikonsumsi saat sedang dibaca, jadi ukurannya tidak masalah,
tetapi antrean yang sangat panjang dapat memakan tempat. Saat menggunakan -m beralih, kategori dibaca
menggunakan mmap(2) jika tersedia.
Saat belajar, dbacl menyimpan struktur besar dalam memori yang berisi banyak objek yang
tidak akan disimpan ke dalam kategori keluaran. Ukuran struktur ini sebanding dengan
jumlah token unik yang dibaca, tetapi bukan ukuran dokumen input, karena mereka
dibuang saat sedang dibaca. Sebagai panduan kasar, struktur ini berukuran 4x-5x dari
file kategori akhir yang dihasilkan.
Untuk mencegah pertumbuhan memori yang tidak terkendali, dbacl mengalokasikan secara default sejumlah kecil tetap dari
memori untuk token. Ketika ruang ini habis, token selanjutnya dibuang yang memiliki
efek memiringkan kategori yang dipelajari sehingga kurang dapat digunakan karena lebih banyak token yang dijatuhkan. SEBUAH
peringatan dicetak pada STDERR dalam kasus seperti itu.
-h switch memungkinkan Anda memperbaiki ukuran awal ruang token dalam pangkat 2, yaitu "-h 17"
berarti 2^17 = 131072 kemungkinan token. Jika Anda mengetik "dbacl -V", Anda dapat melihat jumlah
byte yang dibutuhkan untuk setiap token saat mempelajari atau mengklasifikasikan. Kalikan angka ini dengan
jumlah maksimum token yang mungkin untuk memperkirakan memori yang dibutuhkan untuk belajar. Itu -H
beralih memungkinkan dbacl menumbuhkan tabelnya secara otomatis jika dan saat dibutuhkan, hingga maksimum
ditentukan. Jadi jika Anda mengetik "-H 21", maka ukuran awal akan berlipat ganda berulang kali jika
diperlukan, hingga sekitar dua juta token unik.
Saat belajar dengan -X switch, beberapa dokumen input juga disimpan di RAM
sepanjang.
LINGKUNGAN
DBACL_PATH
Ketika variabel ini disetel, nilainya ditambahkan ke setiap kategori nama file yang
tidak dimulai dengan '/' atau '.'.
SINYAL
INT Jika sinyal ini ditangkap, dbacl hanya keluar tanpa melakukan pembersihan atau lainnya
operasi. Sinyal ini sering dapat dikirim dengan menekan Ctrl-C pada keyboard. Melihat
sty(1).
HUP, KELUAR, TERM
Jika salah satu dari sinyal ini ditangkap, dbacl berhenti membaca input dan melanjutkannya
operasi seolah-olah tidak ada lagi input yang tersedia. Ini adalah cara berhenti dengan anggun,
tetapi perhatikan bahwa dalam mode pembelajaran, file kategori akan ditulis berdasarkan
masukan yang tidak lengkap. Sinyal QUIT sering kali dapat dikirim dengan menekan Ctrl- pada tombol
papan ketik. Melihat sty(1).
USR1 Jika sinyal ini tertangkap, dbacl memuat ulang kategori saat ini paling awal
peluang yang layak. Ini biasanya tidak berguna sama sekali, tetapi mungkin khusus
kasus, seperti jika -f sakelar dipanggil bersama dengan input dari jangka panjang
pipa.
CATATAN
dbacl file kategori yang dihasilkan dalam format biner, dan mungkin atau mungkin tidak portabel untuk
sistem menggunakan arsitektur urutan byte yang berbeda (ini tergantung pada bagaimana dbacl adalah
dikompilasi). Itu -V switch mencetak apakah kategori itu portabel, atau Anda bisa saja
percobaan.
dbacl tidak mengenali ekspresi reguler yang setara secara fungsional, dan dalam hal ini
fitur duplikat akan dihitung beberapa kali.
Dengan setiap kategori yang dipelajari, opsi baris perintah yang digunakan akan disimpan. Kapan
mengklasifikasikan, pastikan bahwa setiap kategori yang relevan dipelajari dengan set yang sama
opsi (regex diizinkan untuk berbeda), jika tidak, perilaku tidak ditentukan. Tidak ada
perlu mengulang semua sakelar saat mengklasifikasikan.
Jika Anda mendapatkan banyak peringatan digitalisasi, maka Anda mencoba mempelajari terlalu banyak data sekaligus,
atau model Anda terlalu rumit. dbacl dikompilasi untuk menghemat memori dengan mendigitalkan final
weights, tetapi Anda dapat menonaktifkan digitalisasi dengan mengedit dbacl.h dan mengkompilasi ulang.
dbacl menawarkan beberapa tokenizer bawaan (lihat -e beralih) dengan lebih banyak lagi yang akan datang di masa depan
versi, sebagai penulis menciptakan mereka. Sementara tokenizer default dapat berkembang, tidak
tokenizer harus dihapus, sehingga Anda selalu dapat mensimulasikan sebelumnya dbacl laku
tunduk pada perbaikan bug dan perubahan arsitektur.
Estimasi kepercayaan yang diperoleh melalui -X beralih adalah meremehkan, yaitu lebih
konservatif dari yang seharusnya.
Gunakan dbacl online menggunakan layanan onworks.net