Klasifikasi statistik teks

32

Saya seorang programmer tanpa latar belakang statistik, dan saat ini saya sedang mencari metode klasifikasi yang berbeda untuk sejumlah besar dokumen yang berbeda yang ingin saya klasifikasikan ke dalam kategori yang telah ditentukan. Saya telah membaca tentang kNN, SVM dan NN. Namun, saya kesulitan memulai. Sumber daya apa yang Anda rekomendasikan? Saya tahu variabel tunggal dan kalkulus multi variabel dengan cukup baik, jadi matematika saya harus cukup kuat. Saya juga memiliki buku Bishop di Neural Networks, tetapi buku itu terbukti agak padat sebagai pengantar.

Emil H
sumber

Jawaban:

19

Saya merekomendasikan buku-buku ini - buku-buku tersebut juga berperingkat tinggi di Amazon:

"Text Mining" oleh Weiss

"Pemrograman Aplikasi Penambangan Teks", oleh Konchady

Untuk perangkat lunak, saya merekomendasikan RapidMiner (dengan plugin teks), gratis dan open-source.

Ini adalah "proses penambangan teks" saya:

  • kumpulkan dokumen (biasanya perayapan web)
    • [sampel jika terlalu besar]
    • cap waktu
    • menghapus markup
  • tokenize: membobol karakter, kata, n-gram, atau jendela geser
  • stemming (alias lemmatization)
    • [sertakan sinonim]
    • lihat kata ganti porter atau algoritma kepingan salju dan artikel biasanya merupakan prediktor yang buruk
  • hapus stopwords
  • vektorisasi fitur
    • binary (muncul atau tidak)
    • jumlah kata
    • frekuensi relatif: tf-idf
    • perolehan informasi, chi square
    • [memiliki nilai minimum untuk disertakan]
  • pembobotan
    • kata-kata berat di bagian atas dokumen lebih tinggi?

Kemudian Anda dapat memulai pekerjaan mengklasifikasikan mereka. kNN, SVM, atau Naif Bayes yang sesuai.

Anda dapat melihat seri video penambangan teks saya di sini

Neil McGuigan
sumber
Ini jawaban yang bagus! Saya akan melihat saran buku Anda, dan deskripsi proses Anda juga bagus. Saya terutama menyukai saran untuk vektorisasi fitur.
Emil H
(Jika ada yang ingin menguraikan lebih jauh pada bagian vektorisasi, itu akan bagus.)
Emil H
11

Teks pengantar yang bagus yang mencakup topik yang Anda sebutkan adalah Pengantar Pengambilan Informasi , yang tersedia online dalam teks lengkap secara gratis.

Pengantar Pengambilan Informasi

Fabian Steeg
sumber
Saya benar-benar memindai itu di tempat kerja kemarin. Ini bacaan yang menarik - saya berharap saya memiliki lebih banyak waktu untuk menyerap materi di dalamnya, tetapi saya harus mendapatkan apa yang saya butuhkan dan melanjutkan.
Thomas Owens
setuju, itu buku yang bagus. Cukup banyak menjelaskan bagaimana Google bekerja :)
Neil McGuigan
5

Jaringan saraf mungkin lambat untuk sejumlah besar dokumen (juga ini sekarang cukup usang).
Dan Anda juga dapat memeriksa Hutan Acak di antara pengklasifikasi; cukup cepat, sisiknya bagus dan tidak perlu penyetelan yang rumit.


sumber
+1 untuk Hutan Acak. Pasti merupakan pengelompokan yang bagus untuk dicoba ke-1, karena mereka tidak berpakaian berlebihan.
Zach
4

Jika Anda berasal dari sisi pemrograman, salah satu opsi adalah menggunakan Natural Language Toolkit (NLTK) untuk Python. Ada buku O'Reilly, tersedia secara bebas , yang mungkin merupakan pengantar yang kurang padat dan lebih praktis untuk membangun pengklasifikasi untuk dokumen.

Jika Anda tertarik untuk menambah sisi statistik, buku Roger Levy sedang dalam proses, Probabilistic Models in Study of Language , mungkin tidak buruk untuk dibaca dengan teliti. Ini ditulis untuk siswa pascasarjana cogsci / compsci memulai dengan teknik NLP statistik.

ars
sumber
3

Pertama saya dapat merekomendasikan Anda buku Yayasan statistik pengolahan bahasa alami oleh Manning dan Schütze.

Metode yang akan saya gunakan adalah distribusi frekuensi kata dan model bahasa ngram. Yang pertama berfungsi dengan sangat baik ketika Anda ingin mengklasifikasikan pada topik dan topik Anda spesifik dan ahli (memiliki kata kunci). Pemodelan Ngram adalah cara terbaik ketika Anda ingin mengklasifikasikan gaya penulisan dll.

Peter Smit
sumber
0

Naif Bayes biasanya merupakan titik awal untuk klasifikasi teks, inilah artikel dari Dr. Dobbs tentang cara mengimplementasikannya. Ini juga sering menjadi titik akhir untuk klasifikasi teks karena sangat efisien dan sejajar dengan baik, SpamAssassin dan POPFile menggunakannya.

Yaroslav Bulatov
sumber