Saya memiliki proyek klasifikasi dokumen di mana saya mendapatkan konten situs dan kemudian menugaskan salah satu dari banyak label ke situs web sesuai dengan konten.
Saya menemukan bahwa tf-idf bisa sangat berguna untuk ini. Namun, saya tidak yakin kapan tepatnya menggunakannya.
Dengan asumsi sebuah situs web yang berkaitan dengan topik tertentu menyebutkannya berulang kali, inilah proses saya saat ini:
- Ambil konten situs, parsing untuk teks biasa
- Menormalkan dan membendung konten
- Tokenisasi ke dalam unigram (mungkin juga bigrams)
- Ambil hitungan setiap unigram untuk dokumen yang diberikan, saring kata-kata dengan panjang rendah dan kemunculan rendah
- Latih classifier seperti NaiveBayes pada perangkat yang dihasilkan
Pertanyaan saya adalah sebagai berikut: Di mana tf-idf cocok di sini ? Sebelum menormalkan / membendung? Setelah normalisasi tetapi sebelum tokenizing? Setelah tokenizing?
Wawasan apa pun akan sangat dihargai.
Edit:
Setelah diperiksa lebih dekat, saya pikir saya mungkin mengalami kesalahpahaman tentang bagaimana TF-IDF beroperasi. Pada langkah 4 di atas yang saya jelaskan, apakah saya harus memasukkan seluruh data saya ke TF-IDF sekaligus? Misalnya, jika data saya adalah sebagai berikut:
[({tokenized_content_site1}, category_string_site1),
({tokenized_content_site2}, category_string_site2),
...
({tokenized_content_siten}, category_string_siten)}]
Di sini, struktur terluar adalah daftar, berisi tupel, berisi kamus (atau hashmap) dan string.
Apakah saya harus memasukkan keseluruhan data ke dalam kalkulator TF-IDF sekaligus untuk mencapai efek yang diinginkan? Secara khusus, saya telah melihat TfidfVectorizer scikit-belajar untuk melakukan ini, tapi saya agak tidak yakin untuk penggunaannya sebagai contoh sangat jarang.
sumber
({tokenized content}, category)
. Karena saya memiliki pelatihan yang mengatur situs web dalam database dan sudah dikategorikan, itu bukan masalah. Label yang dapat diterapkan oleh pengklasifikasi hanya label yang telah dilihat dari set pelatihan beranotasi, benar?