Flazzo memiliki fokus utama untuk menambah nilai bisnis Anda.

Blog

Cara Melakukan Analisis dan Klasifikasi Sentimen pada Teks (dalam Java)

16803000-thumb.jpg
Blog

Cara Melakukan Analisis dan Klasifikasi Sentimen pada Teks (dalam Java)

[ad_1]

Dengan cara yang sama empati timbal balik mendefinisikan pengembangan hubungan jangka panjang dengan teman-teman kita, itu juga memainkan peran kunci dalam menentukan keberhasilan hubungan perusahaan kita dengan pelanggannya. Saat pelanggan meluangkan waktu untuk memasukkan pikiran dan perasaan mereka dalam ulasan produk atau layanan, membagikan perasaan mereka melalui platform media sosial, atau memberikan umpan balik melalui media serupa, kami terserah Anda untuk berempati dengan mereka sebagai manusia dan mencari tahu bagaimana perasaan mereka secara kolektif tentang apa yang telah mereka lalui. Dengan menggunakan solusi terprogram, kami dapat dengan cepat menganalisis dan kemudian menyesuaikan (atau mempertahankan) pengalaman yang kami berikan kepada pelanggan dalam skala besar, secara efektif meningkatkan hubungan pelanggan dengan merek kami.

Tentu saja, tidak seperti otak manusia, komputer tidak dikembangkan dan disosialisasikan untuk menarik kesimpulan emosional tertentu dari bahasa manusia yang berkembang. Mereka perlu dilatih untuk melakukan ini – dan di sinilah bidang analisis dan klasifikasi sentimen masuk. Dengan menggunakan teknik pemrosesan bahasa alami (NLP), kami dapat melatih algoritme hingga pembelajaran mesin untuk menganalisis dan mengklasifikasikan sentimen unik dalam teks.

Seperti banyak bidang NLP, analisis sentimen adalah proses multi-langkah yang kompleks yang dimodelkan dengan serangkaian hasil klasifikasi sederhana. Agar model pengklasifikasi mengembalikan tag sentimen sederhana (yaitu positif, negatif, atau netral), itu harus dilatih untuk mengekstrak fitur tertentu dari input teks dan dengan cepat mereferensikan fitur tersebut ke database yang diisi dengan tag yang telah ditentukan sebelumnya. Untuk sampai ke titik ini, Anda harus mengasosiasikan segudang vektor fitur dengan tag sentimen masing-masing terlebih dahulu – tugas yang melelahkan yang membutuhkan sejumlah besar data yang diverifikasi dengan cermat (dan sering ditinjau oleh rekan sejawat). Saat akhirnya membuat prediksi klasifikasi, model statistik harus diterapkan untuk mencocokkan teks masukan dengan fitur berlabel dari kumpulan data referensi; setelah itu, ia harus menentukan sentimen seluruh kalimat berdasarkan keseimbangan tag sentimennya sehubungan dengan topik tertentu.

Penting untuk dicatat bahwa kompleksitas dasar klasifikasi analisis sentimen diperparah oleh ketidakkonsistenan sehari-hari dalam ekspresi manusia – beberapa di antaranya sulit ditafsirkan oleh analis manusia tanpa bereaksi secara alami terhadap isyarat yang terdengar dalam bahasa, lisan atau tanpa sepenuhnya memahami konteks suatu diskusi. Misalnya, mudah bagi model mana pun untuk tertipu ke dalam kebiasaan bahasa seperti sarkasme (yaitu “Oh ya, tentu, produk itu benar-benar hebat”), konteks komentar spontan (yaitu “Itu tidak sepadan” ), perbandingan di luar konteks (“Layanan ini jauh lebih baik daripada yang lain”), dan banyak lagi. Melatih model untuk menghindari tantangan ini melibatkan pekerjaan prapemrosesan tambahan.

Sama bermanfaatnya dengan analisis sentimen, kompleksitas dan biaya yang terkait dengan pelatihan model produktif dan pemrosesan data dalam jumlah besar yang diperlukan untuk membuat model tersebut bekerja secara akurat seringkali melebihi dorongan untuk membuat yang baru dari awal. Mengingat tenaga kerja yang terlibat, integrasi analisis sentimen paling baik dilakukan dengan memanfaatkan layanan yang ada dengan hasil prediksi yang divalidasi secara komprehensif dan infrastruktur dasar yang kuat. Ini adalah masalah yang paling baik dipecahkan dengan API analisis sentimen, yang memungkinkan kami dengan cepat berinteraksi dengan logika NLP dasar yang kuat tanpa harus mengambil tanggung jawab untuk melatih atau memperbarui pola ini dari waktu ke waktu.

Ekspresi

Tujuan dari artikel ini adalah untuk memberi Anda analisis sentimen kode rendah dan API klasifikasi gratis. Layanan yang mendasarinya menganalisis kalimat teks biasa terhadap database referensi yang terlatih secara ketat untuk menentukan apakah inputnya positif, negatif, atau netral (hanya input bahasa Inggris yang didukung). Panggilan API dapat diautentikasi dengan kunci API gratis, yang dapat Anda peroleh dengan mendaftarkan akun gratis di situs web Cloudmersive.

Setiap kueri (diformat sebagai “TextToAnalyze” string) akan mengembalikan informasi berikut:

  1. SentimentClassificationResult – Sebuah string yang menjelaskan apakah teks yang dimasukkan positif, negatif, atau netral
  2. SentimentScoreResult – Skor peringkat (floating) antara -1.0 dan +1.0; skor yang mendekati nol dianggap sebagai sentimen netral, skor yang mendekati -1,0 dianggap sebagai sentimen negatif, dan skor yang mendekati +1,0 dianggap sebagai sentimen positif.
  3. SentenceCount – Jumlah kalimat (bilangan bulat) dalam string teks input

Contoh tanggapan positif, netral dan negatif

Mari kita lihat beberapa contoh bagaimana model ini bereaksi dan mengklasifikasikan input teks tertentu.

Bayangkan seorang pelanggan telah memesan dan menerima paket dari toko online. Di bagian komentar di situs web perusahaan ini, klien menulis:

{
  "TextToAnalyze": "the package is nice"
}

API Analisis Sentimen akan mengklasifikasikan kalimat ini sebagai berikut:

{
  "Successful": true,
  "SentimentClassificationResult": "Positive",
  "SentimentScoreResult": 0.42149999737739563,
  "SentenceCount": 1
}

Sebagai manusia dengan konteks untuk jawaban ini, kami dapat dengan mudah memvalidasi keakuratan hasil ini. Ungkapan tersebut memang bersifat “positif”, tetapi tidak terlalu berlebihan; dengan demikian, skornya tidak melebihi +0,5.

Mari kita berurusan dengan contoh kedua. Kali ini, pelanggan menerima paket dengan warna berbeda dari yang mereka harapkan, dengan catatan:

{
  "TextToAnalyze": "the package was red, but I was expecting the color brown"
}

API Analisis Sentimen akan mengklasifikasikan kalimat ini sebagai berikut:

{
  "Successful": true,
  "SentimentClassificationResult": "Neutral",
  "SentimentScoreResult": 0,
  "SentenceCount": 1
}

Meskipun kami mungkin tergoda untuk membaca teks input ini sebagai respons pelanggan yang tidak puas, model tersebut dengan tepat mengidentifikasi bahwa tidak ada sentimen negatif atau positif tertentu. Tanpa pemahaman lebih lanjut tentang perasaan klien ini, kami tidak dapat mengetahui apakah ketidaksesuaian yang dia amati adalah hal yang baik atau buruk – kami hanya dapat menunggu informasi lebih lanjut.

Dalam contoh terakhir, mari gabungkan kalimat kedua dengan contoh sebelumnya di mana klien menentukan bahwa:

{
  "TextToAnalyze": "the package was red, but I was expecting the color brown. I hate the color red."
}

Respons API Analisis Sentimen akan mengklasifikasikan entri ini menjadi dua kalimat sebagai berikut:

{
  "Successful": true,
  "SentimentClassificationResult": "Negative",
  "SentimentScoreResult": -0.7226999998092651,
  "SentenceCount": 2
}

Seperti yang bisa kita lihat, hasil skor sentimen berubah dari 0 menjadi -0,72, yang masuk dalam kategori sentimen “negatif”. Sangat jelas, berdasarkan tanggapan dua bagian dari pelanggan, bahwa mereka sangat tidak senang dengan perubahan tersebut, yang berarti ketidakbahagiaan mereka mungkin perlu ditangani secara langsung.

Ini hanyalah contoh dasar, tentu saja – saya pasti akan mendorong Anda untuk melalui contoh kompleks sebanyak yang Anda suka dan memvalidasi hasil terhadap intuisi Anda sendiri (dan/atau model lain).

Penerapan

Di bawah ini saya akan menunjukkan bagaimana Anda dapat menginstal SDK dan menyusun panggilan API Anda di Java.

Untuk menginstal SDK klien, mulailah dengan menambahkan referensi ke repositori di file POM Maven Anda (kami menggunakan JitPack untuk mengompilasi pustaka secara dinamis):

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>
    </repository>
</repositories>

Dan kemudian tambahkan referensi ke dependensi:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v4.25</version>
</dependency>
</dependencies>

Setelah penginstalan selesai, salin dan tempel contoh kode Java siap pakai di bawah ini untuk menyusun panggilan API Anda. Sertakan kunci API Anda dan konfigurasikan entri teks Anda di baris masing-masing:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.AnalyticsApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

AnalyticsApi apiInstance = new AnalyticsApi();
SentimentAnalysisRequest input = new SentimentAnalysisRequest(); // SentimentAnalysisRequest | Input sentiment analysis request
try {
    SentimentAnalysisResponse result = apiInstance.analyticsSentiment(input);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling AnalyticsApi#analyticsSentiment");
    e.printStackTrace();
}

Harap perhatikan bahwa setiap permintaan akan menggunakan 1-2 panggilan API per frasa dan Anda akan memiliki batas 800 panggilan API per bulan (tanpa komitmen) saat mengautentikasi dengan kunci API gratis.

[ad_2]