Saya telah membuat classifier Naif Bayes yang menggunakan teknik bag-of-words untuk mengklasifikasikan posting spam pada papan pesan. Ini bekerja, tapi saya pikir saya bisa mendapatkan hasil yang lebih baik jika model saya mempertimbangkan urutan kata dan frasa. (mis: 'cewek' dan 'live' mungkin tidak memicu skor spam yang tinggi, meskipun 'cewek live' kemungkinan besar sampah). Bagaimana saya bisa membangun model yang memperhitungkan pemesanan kata?
Saya telah mempertimbangkan untuk menyimpan n-gram (check-out-ini, out-ini-live, ini-live-girls), tetapi ini tampaknya secara radikal meningkatkan ukuran kamus yang saya simpan skornya dan menyebabkan ketidakkonsistenan sebagai frasa dengan sangat kata-kata yang serupa tetapi urutan yang berbeda akan lolos.
Saya tidak terikat dengan klasifikasi Bayesian, tetapi saya ingin sesuatu yang seseorang dapat memiliki latar belakang yang kuat dalam statistik dapat diterapkan dan diimplementasikan.
sumber
Jawaban:
Ada hack yang sangat sederhana untuk memasukkan urutan kata dalam implementasi model bag-of-words yang ada. Perlakukan beberapa frasa, seperti bi-gram yang sering muncul (misalnya New York) sebagai satu kesatuan, yaitu satu kata saja daripada memperlakukannya sebagai entitas yang terpisah. Ini akan memastikan bahwa "New York" berbeda dari "New York". Anda juga bisa menentukan sirap kata urutan tinggi seperti untuk n = 3,4 dll.
Anda bisa menggunakan Lucene ShingleFilter untuk menguraikan teks dokumen Anda menjadi sirap sebagai langkah pra-pemrosesan dan kemudian menerapkan classifier pada teks yang diurai ini.
sumber
Cobalah beberapa model generatif seperti HMM. Cukup periksa tautan berikut: /stats/91290/how-do-i-train-hmms-for-classification
sumber
Ada banyak teknik. Anda sudah menyebutkan n-gram, lalu ada kombinasi kata dan lainnya. Tetapi masalah utama (setidaknya dari sudut pandang Anda) adalah bahwa ketika fitur menjadi lebih kompleks (seperti n-gram), jumlah fitur meningkat secara dramatis. Ini bisa dikelola. Pada dasarnya sebelum klasifikasi, Anda harus menilai fitur Anda dan kemudian ambang batas pada skor tertentu. dengan cara ini fitur-fitur (atau dalam kasus Anda n-gram) yang diberi skor di bawah level tertentu dihilangkan dan jumlah fitur menjadi dapat dikelola. Adapun skor. Ada banyak cara (yang untuk memilih tergantung pada aplikasi Anda) untuk menilai fitur. Anda dapat mulai dengan "Pemisahan dua arah", "chi square", "Penguatan Informasi" dan lain-lain. Saya tidak tahu apakah jawaban ini membantu Anda tetapi jika Anda tertarik saya dapat menguraikan ...
Saya lupa, dalam kombinasi kata Anda meletakkan jendela ukuran m pada teks dan mengekstrak setiap kombinasi n kata. tentu saja n
sumber