arrow_back

Analisis Entity dan Sentimen Menggunakan Natural Language API

Gabung Login
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Analisis Entity dan Sentimen Menggunakan Natural Language API

Lab 45 menit universal_currency_alt 5 Kredit show_chart Menengah
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP038

Lab Mandiri Google Cloud

Ringkasan

Dengan Cloud Natural Language API, Anda dapat mengekstrak entity dari teks, melakukan analisis sentimen dan sintaksis, dan mengklasifikasikan teks ke dalam beberapa kategori.

Di lab ini, Anda akan mempelajari cara menggunakan Natural Language API untuk menganalisis entity, sentimen, dan sintaksis.

Yang akan Anda pelajari

  • Membuat permintaan Natural Language API dan memanggil API menggunakan curl
  • Mengekstrak entity dan menjalankan analisis sentimen pada teks menggunakan Natural Language API
  • Melakukan analisis linguistik pada teks menggunakan Natural Language API
  • Membuat permintaan Natural Language API dalam bahasa lain

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan berikut ini:

    • Tombol Open Google Console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Console. Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Login.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username dari panel Lab Details dan tempel ke dialog Sign in. Klik Next.

  4. Salin Password dari panel Lab Details dan tempel ke dialog Welcome. Klik Next.

    Penting: Anda harus menggunakan kredensial dari panel sebelah kiri. Jangan menggunakan kredensial Google Cloud Skills Boost. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  5. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan daftar uji coba gratis.

Setelah beberapa saat, Cloud Console akan terbuka di tab ini.

Catatan: Anda dapat melihat menu dengan daftar Produk dan Layanan Google Cloud dengan mengklik Menu navigasi di kiri atas. Ikon menu navigasi

Tugas 1. Membuat kunci API

Karena Anda menggunakan curl untuk mengirim permintaan ke Natural Language API, Anda harus membuat Kunci API untuk meneruskan URL permintaan.

  1. Untuk membuat Kunci API, di Konsol Cloud, pilih Navigation menu > APIs & Services > Credentials.

  2. Klik Create credentials lalu pilih API key.

  3. Salin kunci API yang dibuat, lalu klik Close.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Kunci API

Agar dapat melakukan langkah-langkah selanjutnya, harap hubungkan ke instance yang disediakan untuk Anda melalui SSH.

  1. Klik Navigation menu > Compute Engine. Anda akan melihat instance linux yang disediakan, linux-instance, dalam daftar instance VM

  2. Klik tombol SSH. Anda akan diarahkan ke shell interaktif.

  3. Pada command line, masukkan baris berikut ini, dengan mengganti <YOUR_API_KEY> dengan kunci yang baru saja Anda salin:

export API_KEY=<YOUR_API_KEY>

Tugas 2. Membuat permintaan analisis entity

Metode Natural Language API pertama yang akan digunakan adalah analyzeEntities. Dengan metode ini, API dapat mengekstrak entity (seperti orang, tempat, dan peristiwa) dari teks. Untuk mencoba analisis entity API, gunakanlah kalimat ini:

Joanne Rowling, yang berkarya menggunakan nama pena J. K. Rowling dan Robert Galbraith, adalah seorang novelis dan penulis skenario asal Inggris yang menulis seri fantasi Harry Potter.

Anda akan membuat permintaan Natural Language API dalam file request.json.

  1. Gunakan nano (editor kode) untuk membuat file request.json:
nano request.json
  1. Ketik atau tempel kode berikut ini ke request.json:
{ "document":{ "type":"PLAIN_TEXT", "content":"Joanne Rowling, yang berkarya menggunakan nama pena J. K. Rowling and Robert Galbraith, adalah seorang novelis dan penulis skenario asal Inggris yang menulis seri fantasi Harry Potter." }, "encodingType":"UTF8" }
  1. Tekan CTRL+X untuk keluar dari nano, lalu Y untuk menyimpan file, kemudian ENTER untuk mengonfirmasi.

Dalam permintaan tersebut, Anda memberi tahu Natural Language API tentang teks yang dikirim. Nilai jenis yang didukung yaitu PLAIN_TEXT atau HTML. Dalam konten, Anda meneruskan teks untuk dikirim ke Natural Language API agar dapat dianalisis.

Natural Language API juga mendukung pengiriman file yang disimpan di Cloud Storage untuk pemrosesan teks. Jika Anda ingin mengirim file dari Cloud Storage, Anda perlu mengganti content dengan gcsContentUri dan memberinya nilai uri file teks di Cloud Storage.

encodingType akan memberi tahu API jenis encoding teks mana yang akan digunakan saat pemrosesan teks dilakukan. API akan menggunakannya untuk memperhitungkan letak munculnya entity tertentu di teks kita.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Permintaan Analisis Entity

Tugas 3. Memanggil Natural Language API

  1. Kini, Anda dapat meneruskan isi permintaan, termasuk variabel lingkungan kunci API yang sebelumnya sudah disimpan, ke Natural Language API dengan perintah curl berikut (semua dalam satu command line tunggal):
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json > result.json
  1. Untuk memeriksa respons yang masuk:
cat result.json

Bagian awal respons Anda akan terlihat seperti berikut:

"content": "Joanne Rowling", "beginOffset": 0 }, "type": "PROPER" }, { "text": { "content": "Rowling", "beginOffset": 53 }, "type": "PROPER" }, { "text": { "content": "novelis", "beginOffset": 96 }, "type": "COMMON" }, { "text": { "content": "Robert Galbraith", "beginOffset": 65 }, "type": "PROPER" } ] }, ... ] }

Untuk tiap entity dalam respons, Anda akan mendapatkan type entity, URL Wikipedia terkait (jika ada), salience, dan indeks tempat entity ini muncul di dalam teks. Salience adalah angka dalam rentang [0,1] yang merujuk pada sentralitas entity terhadap teks secara keseluruhan.

Natural Language API juga mampu mengenali entity yang sama yang disebutkan dalam berbagai cara. Perhatikan daftar mentions yang ada di respons: ​API mampu mengenali bahwa "Joanne Rowling", "Rowling", "novelis", dan "Robert Galbraith" merujuk ke hal yang sama.​

Klik Periksa progres saya untuk memverifikasi tujuan.

Memeriksa respons Analisis Entity

Tugas 4. Analisis sentimen menggunakan Natural Language API

Di samping mengekstrak entity, Anda juga dapat melakukan analisis sentimen pada sebuah blok teks menggunakan Natural Language API. Permintaan JSON ini akan berisi parameter yang sama seperti permintaan di atas. Namun kali ini, ubah teksnya untuk menambahkan hal-hal dengan sentimen yang lebih kuat.

  1. Gunakan nano untuk mengganti kode di request.json dengan teks berikut, dan jangan sungkan untuk mengganti content di bawah ini dengan teks Anda sendiri:
{ "document":{ "type":"PLAIN_TEXT", "content":"Harry Potter adalah buku terbaik. Semua orang harus membacanya." }, "encodingType": "UTF8" }
  1. Tekan CTRL+X untuk keluar dari nano, lalu Y untuk menyimpan file, kemudian ENTER untuk mengonfirmasi.

  2. Selanjutnya, kirim permintaan ke endpoint analyzeSentiment API:

curl "https://language.googleapis.com/v1/documents:analyzeSentiment?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

Respons yang Anda terima seharusnya seperti ini:

{ "documentSentiment": { "magnitude": 1.9, "score": 0.9 }, "language": "en", "sentences": [ { "text": { "content": "Harry Potter adalah buku terbaik.", "beginOffset": 0 }, "sentiment": { "magnitude": 0.9, "score": 0.9 } }, { "text": { "content": "Semua orang harus membacanya.", "beginOffset": 31 }, "sentiment": { "magnitude": 0.9, "score": 0.9 } } ] } Catatan: Jangan kaget jika skor Anda sedikit berbeda dari output contoh.

Perhatikan bahwa Anda mendapatkan dua macam nilai sentimen: sentimen untuk dokumen secara keseluruhan, dan sentimen yang dipecah per kalimat. Metode sentimen ini menampilkan dua nilai:

  • score - merujuk pada angka dari -1.0 sampai 1.0 yang menunjukkan seberapa positif atau negatifnya suatu pernyataan.
  • magnitude - merujuk pada angka mulai dari 0 sampai tak terhingga yang mewakili bobot sentimen yang dinyatakan dalam pernyataan, terlepas dari apakah sentimen itu positif atau negatif.

Blok teks yang lebih panjang dengan penyataan yang lebih berbobot memiliki nilai magnitude yang lebih tinggi. Kalimat pertama mendapatkan skor positif (0.7), sedangkan kalimat kedua mendapatkan skor netral (0.1).

Tugas 5. Menganalisis sentimen entity

Selain memberikan detail sentimen pada keseluruhan dokumen teks, Natural Language API juga dapat memecah sentimen berdasarkan entity-nya di teks. Gunakan kalimat ini sebagai contoh:

Saya suka sushinya, tetapi pelayanannya sangat buruk.

Dalam kasus ini, mendapatkan skor sentimen untuk keseluruhan kalimat seperti yang sudah didapat di atas mungkin tidak terlalu berguna. Jika kalimat tersebut merupakan ulasan sebuah restoran dan ternyata sudah ada ratusan ulasan untuk restoran yang sama, sebaiknya Anda cari tahu item apa saja yang disukai dan tidak disukai oleh pengunjung dalam ulasannya. Untungnya, Natural Language API memiliki sebuah metode yang membuat Anda bisa memperoleh sentimen untuk setiap entity di dalam teks yang disebut dengan analyzeEntitySentiment. Mari kita pelajari cara kerjanya.

  1. Gunakan nano untuk mengupdate request.json dengan kalimat di bawah:
{ "document":{ "type":"PLAIN_TEXT", "content":"Saya suka sushinya, tetapi pelayanannya sangat buruk" }, "encodingType": "UTF8" }
  1. Tekan CTRL+X untuk keluar dari nano, lalu Y untuk menyimpan file, kemudian ENTER untuk mengonfirmasi.

  2. Selanjutnya, panggil endpoint analyzeEntitySentiment menggunakan perintah curl berikut:

curl "https://language.googleapis.com/v1/documents:analyzeEntitySentiment?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

Dalam respons, Anda kembali mendapatkan dua objek entity: satu untuk "sushi" dan satu untuk "pelayanan". Berikut adalah respons lengkap JSON:

{ "entities": [ { "name": "sushi", "type": "CONSUMER_GOOD", "metadata": {}, "salience": 0.51064336, "mentions": [ { "text": { "content": "sushi", "beginOffset": 12 }, "type": "COMMON", "sentiment": { "magnitude": 0, "score": 0 } } ], "sentiment": { "magnitude": 0, "score": 0 } }, { "name": "service", "type": "OTHER", "metadata": {}, "salience": 0.48935664, "mentions": [ { "text": { "content": "service", "beginOffset": 26 }, "type": "COMMON", "sentiment": { "magnitude": 0.7, "score": -0.7 } } ], "sentiment": { "magnitude": 0.7, "score": -0.7 } } ], "language": "en" }

Anda dapat melihat bawa skor yang diraih untuk "sushi" adalah skor netral 0, sedangkan "pelayanan" mendapatkan skor -0.7. Keren! Anda mungkin juga melihat bahwa ada dua objek sentimen yang ditampilkan untuk setiap entity. Jika salah satu dari istilah ini disebutkan lebih dari satu kali, API akan menampilkan skor dan magnitude sentimen yang berbeda untuk tiap penyebutan, beserta sentimen keseluruhan untuk entity tersebut.

Catatan: Jangan kaget jika skor Anda sedikit berbeda dari output contoh.

Tugas 6. Menganalisis sintaksis dan jenis kata

Gunakan analisis sintaksis, yakni metode lain yang dimiliki Natural Language API, untuk lebih mendalami detail linguistik pada teks. analyzeSyntax akan mengekstrak informasi linguistik, memecah teks menjadi serangkaian kalimat dan token (umumnya, batas-batas kata), untuk memberikan analisis yang lebih mendalam pada token tersebut. API akan memberi tahu Anda jenis kata (nomina, verba, adjektiva, dll.) untuk tiap kata di dalam teks dan bagaimana kata tersebut berhubungan dengan kata-kata lain yang ada dalam kalimat (Apakah itu merupakan kata kerja dasar? Atau penjelas?).

Coba praktikkan dengan kalimat sederhana. Permintaan JSON ini akan mirip dengan permintaan di atas, dengan tambahan berupa kunci fitur. Metode ini akan memerintahkan API untuk melakukan anotasi sintaksis.

  1. Gunakan nano untuk menggantikan kode di request.json dengan teks berikut:
{ "document":{ "type":"PLAIN_TEXT", "content": "Joanne Rowling adalah seorang novelis, penulis naskah, dan produser film asal Inggris." }, "encodingType": "UTF8" }
  1. Tekan CTRL+X untuk keluar dari nano, lalu Y untuk menyimpan file, kemudian ENTER untuk mengonfirmasi.

  2. Selanjutnya, panggil metode analyzeSyntax API:

curl "https://language.googleapis.com/v1/documents:analyzeSyntax?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

Respons akan menampilkan objek seperti contoh di bawah ini untuk tiap token yang ada dalam kalimat:

{ "text": { "content": "is", "beginOffset": 15 }, "partOfSpeech": { "tag": "VERB", "aspect": "ASPECT_UNKNOWN", "case": "CASE_UNKNOWN", "form": "FORM_UNKNOWN", "gender": "GENDER_UNKNOWN", "mood": "INDICATIVE", "number": "SINGULAR", "person": "THIRD", "proper": "PROPER_UNKNOWN", "reciprocity": "RECIPROCITY_UNKNOWN", "tense": "PRESENT", "voice": "VOICE_UNKNOWN" }, "dependencyEdge": { "headTokenIndex": 2, "label": "ROOT" }, "lemma": "be" },

Mari uraikan responsnya:

  • partOfSpeech menunjukkan bahwa "Joanne" merupakan nomina.
  • dependencyEdge mencakup data yang dapat Anda gunakan untuk membuat hierarki penguraian dependensi teks. Pada dasarnya, ini adalah diagram yang menunjukkan bagaimana kata-kata dalam kalimat berkaitan satu dengan lainnya. Hierarki penguraian dependensi untuk kalimat di atas akan terlihat seperti berikut:

Hierarki penguraian dependensi

Catatan: Anda dapat membuat hierarki penguraian dependensi sendiri di browser dengan demo Natural Language yang tersedia dalam Panduan AI Natural Language
  • headTokenIndex merupakan indeks token yang memiliki alur yang mengarah ke "Joanne". Bayangkan tiap token dalam kalimat sebagai sebuah kata dalam array.
  • headTokenIndex sebesar 1 untuk "Joanne" merujuk pada kata "Rowling", yang terhubung kepadanya di hierarki. Label NN (kependekan dari penjelas nomina majemuk) menerangkan peran kata dalam kalimat. "Joanne" menjelaskan "Rowling", yang merupakan subjek dalam kalimat tersebut.
  • lemma merupakan bentuk kanonis dari kata. Sebagai contoh, kata run, runs, ran, dan running sama-sama berasal dari lema run. Nilai lemma berguna untuk melacak frekuensi penggunaan suatu kata dalam sebuah teks bervolume besar dari waktu ke waktu.

Tugas 7. Natural language processing multibahasa

Natural Language API juga mendukung bahasa selain bahasa Inggris (daftar lengkapnya dapat ditemukan di Panduan Dukungan Bahasa).

  1. Ubah kode di request.json dengan kalimat berbahasa Jepang:
{ "document":{ "type":"PLAIN_TEXT", "content":"日本のグーグルのオフィスは、東京の六本木ヒルズにあります" } }
  1. Tekan CTRL+X untuk keluar dari nano, lalu Y untuk menyimpan file, kemudian ENTER untuk mengonfirmasi.

Perhatikan bahwa Anda sama sekali tidak memberi tahu API tentang bahasa yang digunakan oleh teks. API mampu mendeteksinya secara otomatis.

  1. Selanjutnya, kirimkan ke endpoint analyzeEntities:
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @request.json

Inilah respons yang akan Anda terima:

{ "entities": [ { "name": "日本", "type": "LOCATION", "metadata": { "mid": "/m/03_3d", "wikipedia_url": "https://en.wikipedia.org/wiki/Japan" }, "salience": 0.23854347, "mentions": [ { "text": { "content": "日本", "beginOffset": 0 }, "type": "PROPER" } ] }, { "name": "グーグル", "type": "ORGANIZATION", "metadata": { "mid": "/m/045c7b", "wikipedia_url": "https://en.wikipedia.org/wiki/Google" }, "salience": 0.21155767, "mentions": [ { "text": { "content": "グーグル", "beginOffset": 9 }, "type": "PROPER" } ] }, ... ] "language": "ja" }

Bahkan URL Wikipedia merujuk ke halaman Wikipedia bahasa Jepang. Sangat keren!

Selamat!

Anda telah mempelajari cara melakukan analisis teks menggunakan Cloud Natural Language API dengan cara mengekstrak entity, menganalisis sentimen, dan melakukan anotasi sintaksis. Anda telah:

  • Membuat permintaan Natural Language API dan memanggil API menggunakan curl
  • Mengekstrak entity dan menjalankan analisis sentimen pada teks menggunakan Natural Language API
  • Melakukan analisis linguistik pada teks untuk membuat hierarki penguraian dependensi
  • Membuat permintaan Natural Language API dalam bahasa Jepang

Menyelesaikan Quest Anda

Lab mandiri ini merupakan bagian dari Quest Intro to ML: Language Processing dan Language, Speech, Text & Translation with Google Cloud APIs. Quest adalah serangkaian lab terkait yang ada dalam sebuah jalur pembelajaran. Dengan menyelesaikan Quest, Anda mendapatkan badge sebagai pengakuan atas pencapaian Anda. Anda dapat menunjukkan satu atau beberapa badge kepada orang lain secara publik dan menautkannya di resume online atau akun media sosial Anda. Daftarkan diri Anda dalam Quest apa pun yang berisi lab ini dan segera dapatkan kredit penyelesaian. Lihat Quest lain yang tersedia.

Mengikuti lab berikutnya

Coba lab lain tentang API Machine Learning, seperti Vertex AI Workbench Notebook: Qwik Start atau coba salah satu dari berikut ini:

Langkah berikutnya

  • Lihat tutorial Natural Language API dalam dokumentasi.

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 19 September 2023

Lab Terakhir Diuji pada 13 Oktober 2023

Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.