Analisis sentimen klasifikasi ulasan film
Saat ini perusahaan ingin mengerti, apa yang salah dengan produk terbaru mereka? apa pendapat pengguna dan masyarakat umum tentang fitur terbaru? Anda dapat mengukur informasi tersebut dengan akurasi yang baik menggunakan analisis sentimen.
Mengukur konten, ide, keyakinan, dan pendapat pengguna dikenal sebagai analisis sentimen. Posting online pengguna, blog, tweet, umpan balik produk membantu pebisnis ke audiens target dan berinovasi dalam produk dan layanan. analisis sentimen membantu dalam memahami orang dengan cara yang lebih baik dan lebih akurat, tidak hanya terbatas pada pemasaran, tetapi juga dapat digunakan dalam politik, penelitian, dan keamanan.
Komunikasi manusia tidak terbatas pada kata-kata, itu lebih dari kata-kata. Sentimen adalah kombinasi kata, nada, dan gaya penulisan. Sebagai seorang analis data, lebih penting untuk memahami sentimen kita, apa artinya sebenarnya?
Ada terutama dua pendekatan untuk melakukan analisis sentimen
- Berbasis leksikon: hitung jumlah kata positif dan negatif dalam teks tertentu dan hitungan yang lebih besar akan menjadi sentimen teks.
- Pendekatan berbasis pembelajaran mesin: Kembangkan model klasifikasi, yang dilatih menggunakan kumpulan data berlabel positif, negatif, dan netral.
Dalam tutorial ini, Anda akan menggunakan pendekatan kedua (pendekatan berbasis pembelajaran mesin). Inilah cara Anda mempelajari sentimen dan klasifikasi teks dengan satu contoh.
Klasifikasi Teks
Klasifikasi teks adalah salah satu tugas penting dari penambangan teks. Ini adalah pendekatan yang diawasi. Mengidentifikasi kategori atau kelas teks tertentu seperti blog, buku, halaman web, artikel berita, dan tweet. Ini memiliki berbagai aplikasi di dunia komputer saat ini seperti deteksi spam, kategorisasi tugas dalam layanan CRM, mengkategorikan produk di situs web E-retailer, mengklasifikasikan konten situs web untuk mesin pencari, sentimen umpan balik pelanggan, dll. Di bagian selanjutnya, Anda akan belajar bagaimana Anda bisa melakukan klasifikasi teks dengan python.
Melakukan Analisis Sentimen menggunakan Klasifikasi Teks
Memuat Data
Sampai saat ini, Anda telah mempelajari preprocessing data menggunakan NLTK. Sekarang, Anda akan belajar Klasifikasi Teks. Anda akan melakukan Klasifikasi Multi-Nomial Naive Bayes menggunakan scikit-learn.
Dalam memodelkan bagian bangunan, Anda dapat menggunakan kumpulan data “Analisis Sentimen Film, Ulasan” yang tersedia di Kaggle. Dataset adalah file yang dipisahkan tab. Dataset memiliki empat kolom PhraseId, SentenceId, Phrase, dan Sentimen.
Data ini memiliki 5 label sentimen:
0 — negatif 1 — agak negatif 2 — netral 3 — agak positif 4 — positif
Di sini, Anda dapat membuat model untuk mengklasifikasikan jenis kultivar. Dataset tersedia di Kaggle, Anda dapat mengunduhnya dari tautan berikut: https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews/data
Pembuatan Fitur menggunakan Bag of Words
Masalah Klasifikasi Dalam Teks, kami memiliki sekumpulan teks dan labelnya masing-masing. tetapi kita secara langsung tidak dapat menggunakan teks untuk model kita. Anda perlu mengubah teks ini menjadi beberapa angka atau vektor angka.
Bag-of-words model(BoW ) adalah cara paling sederhana untuk mengekstraksi fitur dari teks. BoW mengubah teks menjadi matriks kemunculan kata-kata dalam dokumen. Model ini memperhatikan apakah kata-kata yang diberikan muncul atau tidak dalam dokumen.
Contoh: Ada tiga dokumen:
Dok 1: Saya suka anjing.
Dok 2: Saya benci anjing dan merajut.
Dok 3 : Merajut adalah hobi dan kegemaran saya.
Sekarang, Anda dapat membuat matriks dokumen dan kata dengan menghitung kemunculan kata dalam dokumen tertentu. Matriks ini dikenal sebagai Document-Term Matrix (DTM).
Matriks ini menggunakan satu kata. Ini bisa berupa kombinasi dari dua kata atau lebih, yang disebut model bigram atau trigram dan pendekatan umum disebut model n-gram.
Anda dapat membuat matriks istilah dokumen dengan menggunakan CountVectorizer scikit-learn.
Pisahkan kereta dan set pengujian
Untuk memahami performa model, membagi dataset menjadi set pelatihan dan set pengujian adalah strategi yang baik.
Mari pisahkan dataset dengan menggunakan fungsi train_test_split(). Anda pada dasarnya harus melewati 3 parameter fitur, target, dan ukuran test_set. Selain itu, Anda dapat menggunakan random_state untuk memilih record secara acak.
Pembuatan Model dan Evaluasi
Mari membangun Model Klasifikasi Teks menggunakan TF-IDF.
Pertama, impor modul MultinomialNB dan buat objek pengklasifikasi Multinomial Naive Bayes menggunakan fungsi MultinomialNB().
Kemudian, paskan model Anda pada rangkaian kereta menggunakan fit() dan lakukan prediksi pada rangkaian pengujian menggunakan prediksi().
Nah, Anda mendapat tingkat klasifikasi 60,49% menggunakan CountVector (atau BoW), yang tidak dianggap sebagai akurasi yang baik. Kami perlu meningkatkan ini.
Pembuatan Fitur menggunakan TF-IDF
Dalam Term Frequency (TF), Anda tinggal menghitung jumlah kata yang muncul di setiap dokumen. Masalah utama dengan Term Frequency ini adalah akan memberi bobot lebih pada dokumen yang lebih panjang. Term frequency pada dasarnya adalah output dari model BoW.
IDF (Frekuensi Dokumen Terbalik) mengukur jumlah informasi yang disediakan kata tertentu di seluruh dokumen. IDF adalah rasio terbalik berskala logaritmik dari jumlah dokumen yang mengandung kata dan jumlah total dokumen.
TF-IDF(Term Frequency-Inverse Document Frequency) menormalkan matriks istilah dokumen. Ini adalah produk dari TF dan IDF. Word dengan tf-idf tinggi dalam dokumen, sebagian besar waktu yang terjadi dalam dokumen yang diberikan dan harus absen dalam dokumen lain. Jadi kata-kata itu harus menjadi kata tanda tangan.
Split train dan test set (TF-IDF)
Mari pisahkan dataset dengan menggunakan fungsi train_test_split(). Anda pada dasarnya harus melewati 3 parameter fitur, target, dan ukuran test_set. Selain itu, Anda dapat menggunakan random_state untuk memilih record secara acak.
Pembuatan Model dan Evaluasi (TF-IDF)
Mari membangun Model Klasifikasi Teks menggunakan TF-IDF.
Pertama, impor modul MultinomialNB dan buat objek pengklasifikasi Multinomial Naive Bayes menggunakan fungsi MultinomialNB().
Kemudian, paskan model Anda pada rangkaian kereta menggunakan fit() dan lakukan prediksi pada rangkaian pengujian menggunakan prediksi().
Nah, Anda mendapatkan tingkat klasifikasi 58,65% menggunakan fitur TF-IDF, yang tidak dianggap sebagai akurasi yang baik. Kami perlu meningkatkan akurasi menggunakan beberapa prapemrosesan atau rekayasa fitur lainnya. Mari sarankan di kotak komentar beberapa pendekatan untuk peningkatan akurasi.
Jika ada yang ingin di tanyakan atau ingin melanjutkan pembahasan lebih dalam lagi silahkan komen di bawah sini ?..
0 Comments