Audience
Tutorial ini dirancang untuk memungkinkan Anda secara cepat mulai menjelajahi dan mengembangkan aplikasi menggunakan Google Cloud Natural Language API. Kursus ini dirancang untuk orang-orang yang memahami pemrograman dasar, meskipun tanpa banyak pengetahuan pemrograman, Anda harus dapat mengikutinya. Setelah mengikuti tutorial ini, Anda akan dapat menggunakan Dokumentasi referensi untuk membuat aplikasi dasar Anda sendiri.
Tutorial ini memandu aplikasi Natural Language API menggunakan kode Python. Tujuannya di sini bukan untuk menjelaskan library klien Python, tetapi menjelaskan cara melakukan panggilan ke Natural Language API. Aplikasi di Java dan Node.js pada dasarnya mirip. Lihat Sample Natural Language API untuk mengetahui sampel dalam bahasa lain (termasuk contoh ini dalam tutorial).
Prasyarat
Tutorial ini memiliki beberapa prasyarat:
- Anda memiliki akun Google Cloud. Jika Anda baru menggunakan platform ini, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
- Anda telah menyiapkan project Cloud Natural Language API di Konsol Google Cloud.
- Anda telah menyiapkan lingkungan menggunakan Kredensial Default Aplikasi.
- Anda telah memiliki pemahaman dasar tentang pemrograman Python.
- Anda telah menyiapkan lingkungan pengembangan Python. Sebaiknya instal
Python,
pip
, danvirtualenv
versi terbaru di sistem Anda. Untuk mengetahui petunjuknya, lihat Panduan Penyiapan Lingkungan Pengembangan Python untuk Google Cloud Platform. - Anda telah menginstal Library Klien Google Cloud untuk Python
Menganalisis sentimen dokumen
Tutorial ini memandu Anda memahami aplikasi Natural Language API dasar, menggunakan permintaan analyzeSentiment
, yang menjalankan analisis sentimen pada teks.
Analisis sentimen mencoba menentukan sikap keseluruhan (positif atau negatif) dan diwakili oleh nilai score
dan magnitude
numerik.
(Untuk mengetahui informasi selengkapnya tentang konsep ini, baca Natural Language Basics.)
Kita akan menampilkan seluruh kode terlebih dahulu. (Perhatikan bahwa kami telah menghapus sebagian besar komentar dari kode ini untuk menunjukkan kepada Anda seberapa singkatnya. Kami akan memberikan lebih banyak komentar selagi menelusuri kode ini.)
Aplikasi sederhana ini melakukan tugas-tugas berikut:
- Mengimpor library yang diperlukan untuk menjalankan aplikasi
- Mengambil file teks dan meneruskannya ke fungsi
main()
- Membaca file teks dan membuat permintaan ke layanan
- Mengurai respons dari layanan dan menampilkannya kepada pengguna
Kita akan membahas langkah-langkah ini secara lebih mendetail di bawah.
Mengimpor library
Kita mengimpor argparse
, library standar, agar aplikasi dapat menerima
nama file input sebagai argumen.
Untuk menggunakan Cloud Natural Language API, kita juga ingin mengimpor
modul language
dari library google-cloud-language
. Modul types
berisi class yang diperlukan untuk membuat permintaan.
Menjalankan aplikasi
Di sini, kita cukup mengurai argumen yang diteruskan untuk nama file teks dan meneruskannya ke fungsi analyze()
.
Mengautentikasi ke API
Sebelum berkomunikasi dengan layanan Natural Language API, Anda harus mengautentikasi layanan Anda menggunakan kredensial yang diperoleh sebelumnya. Dalam
aplikasi, cara termudah untuk mendapatkan kredensial adalah dengan menggunakan
Kredensial Default Aplikasi
(ADC). Secara default, ADC akan mencoba mendapatkan kredensial dari
file lingkungan GOOGLE_APPLICATION_CREDENTIALS
, yang harus ditetapkan agar mengarah
ke file kunci JSON akun layanan Anda. (Anda harus menyiapkan akun
layanan dan lingkungan untuk menggunakan ADC di Panduan Memulai. Lihat Menyiapkan Akun Layanan untuk mengetahui informasi selengkapnya.)
Library Klien Google Cloud untuk Python otomatis menggunakan kredensial default aplikasi.
Membuat permintaan
Setelah layanan Natural Language API sudah siap, kita dapat mengakses layanan tersebut dengan memanggil metode analyze_sentiment
dari instance LanguageServiceClient
.
Library klien mengenkapsulasi detail permintaan dan respons ke API. Baca Referensi Natural Language API untuk mengetahui informasi selengkapnya tentang struktur spesifik dari permintaan tersebut.
Cuplikan kode ini melakukan tugas-tugas berikut:
- Membuat instance
LanguageServiceClient
sebagai klien. - Membaca nama file yang berisi data teks ke dalam variabel.
- Membuat instance objek
Document
dengan konten file. - Memanggil metode
analyze_sentiment
klien.
Mengurai respons
Kita menelusuri respons untuk mengekstrak nilai score
sentimen untuk setiap
kalimat, serta nilai score
dan magnitude
keseluruhan untuk seluruh ulasan,
dan menampilkannya kepada pengguna.
Menjalankan contoh
Untuk menjalankan sampel, kita akan mengujinya pada serangkaian ulasan film (palsu) untuk film "Bladerunner."
Download sampel dari Google Cloud Storage:
gsutil cp gs://cloud-samples-tests/natural-language/sentiment-samples.tgz .
gsutil
biasanya diinstal sebagai bagian dari gcloud CLI. Untuk menginstal gcloud CLI versi terbaru, lihat dokumentasi gcloud CLI.Ekstrak contoh tersebut, yang akan membuat folder "reviews":
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Menjalankan analisis sentimen pada salah satu file yang ditentukan:
python sentiment_analysis.py reviews/bladerunner-pos.txt Sentence 0 has a sentiment score of 0.8 Sentence 1 has a sentiment score of 0.9 Sentence 2 has a sentiment score of 0.8 Sentence 3 has a sentiment score of 0.2 Sentence 4 has a sentiment score of 0.1 Sentence 5 has a sentiment score of 0.4 Sentence 6 has a sentiment score of 0.3 Sentence 7 has a sentiment score of 0.4 Sentence 8 has a sentiment score of 0.2 Sentence 9 has a sentiment score of 0.9 Overall Sentiment: score of 0.5 with magnitude of 5.5
Contoh di atas akan menunjukkan ulasan yang relatif positif (skor 0.5
), dan relatif emosional (besarnya 5.5
).
Menjalankan analisis pada contoh lain akan menghasilkan nilai yang mirip dengan yang ditunjukkan di bawah ini:
python sentiment_analysis.py reviews/bladerunner-neg.txt ... Overall Sentiment: score of -0.6 with magnitude of 3.3 python sentiment_analysis.py reviews/bladerunner-mixed.txt ... Overall Sentiment: score of 0 with magnitude of 4.7 python sentiment_analysis.py reviews/bladerunner-neutral.txt ... Overall Sentiment: score of -0.1 with magnitude of 1.8
Perhatikan bahwa magnitudonya serupa (menunjukkan jumlah sentimen yang signifikan secara emosional yang relatif sama) kecuali untuk kasus "netral", yang menunjukkan ulasan dengan tidak terlalu banyak sentimen emosional, baik positif maupun negatif. (Untuk mengetahui informasi selengkapnya tentang skor dan magnitudo sentimen, serta cara menafsirkan nilai-nilai ini, lihat Menafsirkan Nilai Analisis Sentimen.)
Jika Anda ingin mempelajari analisis sentimen dengan lebih banyak data, Stanford akan memberikan set data ulasan film IMDB. Untuk mengambil ulasan film ini:
- Download set data Ulasan Film Besar.
- Ekstrak file tersebut ke direktori kerja Anda. Ulasan film dibagi
menjadi direktori
pos
danneg
dalam direktori datatrain
dantest
, dengan setiap file teks yang berisi satu ulasan film. - Jalankan alat
sentiment_analysis.py
pada file teks ulasan film mana pun.
Selamat! Anda telah berhasil melakukan tugas inferensi pertama menggunakan Google Cloud Natural Language API.