Berbagai layanan klasifikasi sentimen online tersedia sekarang. Raksasa seperti Google, Amazon, atau Microsoft menawarkan solusi cloud mereka untuk pemrosesan bahasa alami. Tetapi jika Anda tidak berencana untuk membayar $ 1-2 untuk 1000 panggilan API (kenaikan harga ketika ulasan memiliki lebih dari 1000 karakter) dan/atau siap untuk menyiapkan layanan atau program klasifikasi lokal Anda, maka Anda dapat menggunakan pengklasifikasi offline. Ada beberapa pengklasifikasi .NET untuk kasus offline yang akan dibahas dalam posting ini. Topik berikut akan dibahas di sini:

-[Apa itu analisis sentimen?] (#What-is-sentimen-analisis)

Apa itu klasifikasi sentimen (analisis)?

Klasifikasi sentimen adalah pendekatan yang kuat untuk lebih memahami perasaan pelanggan tentang produk atau layanan Anda. Ini juga dapat membantu Anda dalam tugas pemantauan merek. Klasifikasi sentimen memungkinkan Anda untuk mengklasifikasikan emosi dan umpan balik orang yang mereka posting di media sosial, blog, atau artikel. Ada beberapa taksonomi umum yang digunakan untuk klasifikasi sentimen.

  • Biner:
    • negatif;
    • positif;
  • 3-kelas:
    • negatif;
    • netral;
    • positif;
  • 5 kelas
    • dari 1 hingga 5 bintang Dalam semua kasus, sentimen negatif adalah yang paling penting untuk analisis. Jadi tugas utama yang harus dipecahkan oleh classifier sentimen terlihat seperti “apakah teks itu negatif?” dan “Seberapa negatifnya?”.

metrik

Akurasi adalah metrik yang sederhana dan jelas. Ini memiliki kerugian terkenal ketika kelas tidak seimbang. Namun, ini dapat digunakan dalam kasus kelas seimbang kami. Ini juga banyak digunakan dalam literatur ilmiah. Pengklasifikasi yang tercantum di bawah ini hanya dapat dibandingkan dalam tugas klasifikasi biner karena salah satunya tidak memiliki kelas “netral”.

Klasifikasi Sentimen Offline (C#)

Ada beberapa perpustakaan C# yang dapat ditemukan melalui Google, Nuget E.T.C. Tetapi mereka harus diperiksa secara manual karena banyak dari mereka sebenarnya hanya SDK untuk API cloud. Paket berikutnya dikumpulkan setelah verifikasi manual klasifikasi sentimen C# pustaka:

  • Groupdocs.classification;
  • Vadersharp;
  • Stanfordnlp;
  • Sentimentanalyzer;
  • Wikiled; Mereka semua adalah klasifikasi sentimen offline C# pustaka. Mari kita jelaskan secara lebih rinci.

groupdocs.classification

Lisensi: File Lisensi

Kompleksitas Instalasi: Mudah ** Akurasi:**93.3 (evaluasi) / 96.3 (berlisensi) {.wp-block-heading} GroupDocs.Classification adalah perpustakaan dengan mesin bawaannya sendiri untuk klasifikasi teks dan dokumen. Model juga merupakan bagian dari paket A Nuget. Instalasi sederhana: Anda hanya perlu menginstal paket NUGET. Ada perbedaan antara evaluasi dan versi berlisensi. Untuk versi evaluasi, Anda harus membagi teks menjadi potongan 100 karakter dan kemudian rata-rata hasilnya. GroupDocs.Classifikasi menunjukkan akurasi 93,3% dalam mode evaluasi dan 96,3% ketika lisensi diterapkan.

vadersharp

Lisensi: MIT

Kompleksitas Instalasi: Mudah Akurasi: 77,6% {.wp-block-heading} Vadersharp adalah solusi populer untuk klasifikasi sentimen C# (analisis). Ini bekerja sangat cepat dan memproses pesan per detik pada PC rumahan biasa, tidak demikian halnya dengan mesin server. Instalasi juga sederhana (cukup instal paket nuget). Namun, ada juga kerugian penting: keakuratannya tidak sesempurna waktu pemrosesan. Ini mencapai akurasi 78% pada dataset pengujian.

stanfordnlp

Lisensi: GPL V2

Kompleksitas Instalasi: Keras. Akurasi: 70% {.wp-block-heading} Stanford NLP adalah perpustakaan C# berdasarkan perpustakaan Java yang sesuai untuk pemrosesan bahasa alami. Ada beberapa kesulitan dengan instalasi. Penting untuk menginstal versi Java dari Stanford NLP dan menyalin model ke direktori program saat ini jika perlu. Ada juga masalah dengan kompatibilitas .NET Core 3.0. Akurasi dan waktu pemrosesan tidak stabil untuk perpustakaan ini dan tampaknya bergantung pada panjang teks. Untuk teks pendek dari dataset SST-2, ia mencapai akurasi 80,2% dengan detik per contoh waktu pemrosesan. Untuk teks yang lebih panjang dari silang domain, akurasi berkurang menjadi 70%. dan waktu pemrosesan meningkat menjadi 1 menit atau lebih per teks.

sentimentanalyzer

Lisensi: MIT

Kompleksitas Instalasi: Medium Akurasi: 79.1% {.wp-block-heading} Perpustakaan ini adalah ml.net -BASIS. Selama instalasi, mungkin ada masalah yang terkait dengan pekerjaan ML.NET. Ini adalah pustaka yang tidak aman, membutuhkan konfigurasi (x86 / x64) secara eksplisit, dan Anda mungkin perlu menginstal beberapa dependensi juga. Sentimentanalyzer mengembalikan kelas positif atau negatif dan skor yang sesuai. Itulah alasan mengapa tugas klasifikasi biner digunakan untuk perbandingan itu. Hasil terbaik dapat dicapai dengan ambang batas yang dipilih secara tepat. Akurasi mencapai 79% setelah optimalisasi nilai ambang batas.

wikiled

Lisensi: Lisensi Apache 2.0

Kompleksitas Instalasi: Sederhana Akurasi: tidak ada {.wp-block-heading} Perpustakaan Klasifikasi Sentimen C# lainnya adalah Wikiled. Perpustakaan ini harus dilatih sebelum pengujian untuk menghasilkan hasil yang memadai. Jadi keakuratannya tidak dapat dihitung untuk perpustakaan.

Dataset

Kami menggunakan dataset lintas domain untuk tujuan pengujian. Groupdocs.classification belum dilatih. Perpustakaan lainnya kemungkinan besar tidak menggunakannya dalam pelatihan juga. Kami akan mengirimkan hasilnya ke pihak yang berkepentingan melalui email. Harap buat masalah di repo GitHub yang sesuai. 14: Stanford Sentiment Treebank (Socher et al. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In proc. EMNLP).

Hasil

Tabel 1 menunjukkan akurasi (%) untuk pengklasifikasi yang dieksperimen. Tabel 1.

SST-2Domain silang
Groupdocs.classification93.3 (Lisensi: 94.7)93.3 (Lisensi: 96.3)
Sentimentanalyzer58.579.1
Stanford NLP80.7~ 70
Vadersharp68.777.6
Sebagian besar dari mereka menunjukkan hasil yang berbeda untuk 2 set data tersebut. Tampaknya penyebab perilaku seperti itu adalah teks-teks SST-2 lebih pendek dari teks domain silang. Ada juga beberapa hiasan selama pengujian Stanford NLP di CrossDomain untuk teks lebih dari 500 karakter. Itu sebabnya akurasi lintas domain ditandai dengan “~”.

Analisis kesalahan umum

Kesalahan klasifikasi berikut adalah tipikal: _ “Seperti halnya bintangnya, sikapnya dan ketidakwajarannya.” _ - Sulit untuk memahami apa arti orang tersebut. _ “Snoozer yang berakting dengan baik dan berniat baik.” _ Atau _ “Ya ampun, seorang pembunuh kedua menembak Kennedy?” _ - sarkasme atau ironi. _ “Moot Point” _ - Teks terlalu pendek. Masalah seperti itu terjadi di semua produk klasifikasi sentimen (analisis). Misalnya, sarkasme, subyektif. Oleh karena itu, sulit untuk melatih model sarkasme dan sulit untuk mengklasifikasikannya dengan benar. Tapi mari kita berharap bahwa kelemahan ini akan dihilangkan dalam waktu dekat.

Kesimpulan

Sementara semua perpustakaan di atas tepat untuk klasifikasi sentimen di C#, groupdocs.classification adalah yang paling akurat. Jadi, ini adalah yang terbaik untuk pencarian sentimen negatif atau positif dalam besar -besaran menyebutkan dan/atau ulasan. Sebagai kesimpulan, perlu dicatat, bahwa ada juga kasus penting klasifikasi negatif/netral/positif. Ini juga akan dipertimbangkan di masa depan.

Kode

Kami menyediakan kode yang digunakan untuk posting blog ini: {{LINE_90}}