GSP063

Ringkasan
Dengan Cloud Natural Language API, Anda dapat mengekstrak entity dari teks, melakukan analisis sentimen dan sintaksis, serta mengklasifikasikan teks ke berbagai kategori. Di lab ini, fokusnya adalah klasifikasi teks. Menggunakan database yang berisi lebih dari 700 kategori, fitur API ini memudahkan klasifikasi set data teks berukuran besar.
Tujuan
Di lab ini, Anda akan mempelajari cara:
- Membuat permintaan Natural Language API dan memanggil API menggunakan curl
- Menggunakan fitur klasifikasi teks Natural Language API
- Menggunakan klasifikasi teks untuk memahami set data artikel berita
Penyiapan dan kebutuhan
Sebelum mengklik tombol Start 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 interaktif ini dapat Anda gunakan untuk melakukan 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 (direkomendasikan) 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: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Mengaktifkan Cloud Natural Language API
-
Luaskan Navigation menu (
) di kiri atas layar.
-
Pilih APIs & Services > Enabled APIs and Services.
- Klik Enable APIs and Services.
-
Kemudian, cari language di kotak penelusuran.
-
Klik Cloud Natural Language API:
Jika API belum diaktifkan, Anda akan melihat tombol Enable.
- Klik Enable untuk mengaktifkan Cloud Natural Language API.
Saat API aktif, Google Cloud akan menampilkan informasi API berikut:

Tugas 2. Membuat kunci API
Karena menggunakan curl untuk mengirimkan permintaan ke Natural Language API, Anda harus membuat kunci API untuk meneruskan URL permintaan.
-
Untuk membuat kunci API, klik Navigation menu > APIs & Services > Credentials di Konsol.
-
Kemudian klik Create Credentials.
-
Di menu drop-down, pilih API key.
-
Selanjutnya, salin kunci yang baru saja Anda buat, lalu klik Close.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat Kunci API
Simpan kunci API sebagai variabel lingkungan agar tidak perlu memasukkan nilai kunci API pada setiap permintaan.
Untuk melakukan langkah-langkah selanjutnya, mulai koneksi ke instance yang disediakan melalui ssh.
- Buka Navigation menu, lalu pilih Compute Engine > VM Instances. Anda akan melihat
linux-instance yang telah disediakan.
-
Klik tombol SSH. Anda akan diarahkan ke shell interaktif.
-
Pada command line, masukkan perintah berikut ini dan ganti <YOUR_API_KEY> dengan kunci yang baru saja Anda salin:
export API_KEY=<YOUR_API_KEY>
Tugas 3. Mengklasifikasikan artikel berita
Menggunakan metode classifyText Natural Language API, Anda dapat mengelompokkan data teks ke berbagai kategori dengan satu panggilan API. Metode ini menghasilkan daftar kategori konten yang relevan dengan sebuah dokumen teks.
Kategori ini memiliki cakupan berbeda-beda, mulai dari kategori luas seperti /Computer & Electronics hingga kategori yang sangat spesifik seperti /Computer & Electronics/Programming/Java (Programming Language). Daftar lengkap berisi lebih dari 700 pilihan kategori dapat ditemukan di halaman Kategori Konten.
Anda akan memulai tugas ini dengan mengklasifikasikan satu artikel, lalu melihat penggunaan metode ini untuk memahami kumpulan berita berukuran besar.
- Untuk memulai, ambil judul dan deskripsi ini dari artikel di rubrik makanan di New York Times:
A Smoky Lobster Salad With a Tapa Twist. This spin on the Spanish pulpo a la gallega skips the octopus, but keeps the sea salt, olive oil, pimentón and boiled potatoes.
- Buat file bernama
request.json dan tambahkan kode di bawah. Anda dapat membuat file menggunakan salah satu editor command line pilihan Anda (nano, vim, emacs).
{
"document":{
"type":"PLAIN_TEXT",
"content":"A Smoky Lobster Salad With a Tapa Twist. This spin on the Spanish pulpo a la gallega skips the octopus, but keeps the sea salt, olive oil, pimentón and boiled potatoes."
}
}
Create a request to classify a news article
- Sekarang Anda dapat mengirimkan teks ini ke metode
classifyText Natural Language API dengan perintah curl berikut:
curl "https://language.googleapis.com/v1/documents:classifyText?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json
Lihat responsnya:
{ categories:
[
{
name: '/Food & Drink/Cooking & Recipes',
confidence: 0.85
},
{
name: '/Food & Drink/Food/Meat & Seafood',
confidence: 0.63
}
]
}
Anda baru saja membuat permintaan Speech API, kemudian memanggil Speech API.
- Jalankan perintah berikut untuk menyimpan respons di file
result.json:
curl "https://language.googleapis.com/v1/documents:classifyText?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json > result.json
Memeriksa respons Analisis Entity
API menghasilkan 2 kategori untuk teks ini:
/Food & Drink/Cooking & Recipes
/Food & Drink/Food/Meat & Seafood
Teks tersebut tidak secara eksplisit menyebutkan bahwa isinya adalah resep atau mengandung bahan makanan laut, tetapi API ini dapat mengategorikannya. Mengklasifikasikan satu artikel memang sederhana, tetapi untuk benar-benar melihat kehebatan fitur ini, klasifikasikan banyak data teks.
Tugas 4. Mengklasifikasikan set data teks berukuran besar
Untuk melihat manfaat metode classifyText dalam membantu Anda memahami set data yang berisi banyak teks, gunakan set data publik artikel berita BBC ini. Set data ini berisi 2.225 artikel dari lima rubrik (bisnis, hiburan, politik, olahraga, teknologi) dari tahun 2004—2005. Sebagian artikel ini berada di bucket Cloud Storage publik. Setiap artikel berupa file .txt terpisah.
Untuk memproses data dan mengirimkannya ke Natural Language API, Anda perlu menulis skrip Python untuk membaca setiap file teks dari Cloud Storage, mengirimkannya ke endpoint classifyText, dan menyimpan hasilnya di tabel BigQuery. BigQuery adalah alat data warehouse berskala besar dari Google Cloud yang memungkinkan Anda menyimpan dan menganalisis set data berukuran besar dengan mudah.
- Untuk melihat jenis teks yang akan Anda gunakan, jalankan perintah berikut untuk melihat satu artikel (
gsutil menyediakan antarmuka command line untuk Cloud Storage):
gsutil cat gs://spls/gsp063/bbc_dataset/entertainment/001.txt
Selanjutnya, Anda akan membuat tabel BigQuery untuk data Anda.
Tugas 5. Membuat tabel BigQuery untuk data teks yang telah dikategorikan
Sebelum mengirimkan teks ke Natural Language API, Anda perlu tempat untuk menyimpan teks dan kategori setiap artikel.
-
Buka Navigation menu > BigQuery di Konsol.
-
Klik Done.
-
Untuk membuat set data, klik ikon View actions di sebelah project ID, lalu pilih Create dataset:

-
Beri nama set data news_classification_dataset, lalu klik Create dataset.
-
Untuk membuat tabel, klik ikon View actions di samping news_classification_dataset, lalu pilih Create Table.
-
Gunakan setelan berikut untuk tabel baru:
- Buat tabel dari: Empty table
- Beri nama tabel: article_data
-
Di bagian Schema, klik Add Field dan tambahkan 3 kolom berikut:
| Field Name |
Type |
Mode |
article_text |
STRING |
NULLABLE |
category |
STRING |
NULLABLE |
confidence |
FLOAT |
NULLABLE |

- Klik Create Table.
Tabel ini masih kosong. Pada langkah berikutnya, Anda akan membaca artikel dari Cloud Storage, mengirimkannya ke Natural Language API untuk diklasifikasikan, dan menyimpan hasilnya di BigQuery.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat set data dan tabel baru untuk data teks yang telah dikategorikan
Tugas 6. Mengklasifikasikan data berita dan menyimpan hasilnya di BigQuery
Untuk melakukan langkah-langkah selanjutnya, mulai koneksi ke Cloud Shell. Jika diminta, klik Continue.
Sebelum menulis skrip untuk mengirimkan data berita ke Natural Language API, Anda perlu membuat akun layanan. Akun ini akan digunakan untuk mengautentikasi Natural Language API dan BigQuery dari skrip Python.
- Ekspor Project ID sebagai variabel lingkungan:
export PROJECT={{{project_0.project_id | Project ID}}}
- Jalankan perintah berikut untuk membuat akun layanan:
gcloud iam service-accounts create my-account --display-name my-account
gcloud projects add-iam-policy-binding $PROJECT --member=serviceAccount:my-account@$PROJECT.iam.gserviceaccount.com --role=roles/bigquery.admin
gcloud projects add-iam-policy-binding $PROJECT --member=serviceAccount:my-account@$PROJECT.iam.gserviceaccount.com --role=roles/serviceusage.serviceUsageConsumer
gcloud iam service-accounts keys create key.json --iam-account=my-account@$PROJECT.iam.gserviceaccount.com
export GOOGLE_APPLICATION_CREDENTIALS=key.json
Sekarang Anda siap untuk mengirimkan data teks ke Natural Language API.
- Tulis skrip Python menggunakan modul Python untuk Google Cloud.
Anda dapat melakukan hal yang sama dari bahasa apa pun dengan memanfaatkan banyak library klien cloud yang tersedia.
- Buat file bernama
classify-text.py dan salin kode berikut ke dalamnya. Anda dapat membuat file menggunakan salah satu editor command line pilihan Anda (nano, vim, emacs).
from google.cloud import storage, language, bigquery
# Set up your GCS, NL, and BigQuery clients
storage_client = storage.Client()
nl_client = language.LanguageServiceClient()
bq_client = bigquery.Client(project='{{{project_0.project_id | Project ID}}}')
dataset_ref = bq_client.dataset('news_classification_dataset')
dataset = bigquery.Dataset(dataset_ref)
table_ref = dataset.table('article_data')
table = bq_client.get_table(table_ref)
# Send article text to the NL API's classifyText method
def classify_text(article):
response = nl_client.classify_text(
document=language.Document(
content=article,
type=language.Document.Type.PLAIN_TEXT
)
)
return response
rows_for_bq = []
files = storage_client.bucket('qwiklabs-test-bucket-gsp063').list_blobs()
print("Got article files from GCS, sending them to the NL API (this will take ~2 minutes)...")
# Send files to the NL API and save the result to send to BigQuery
for file in files:
if file.name.endswith('txt'):
article_text = file.download_as_bytes().decode('utf-8') # Decode bytes to string
nl_response = classify_text(article_text)
if len(nl_response.categories) > 0:
rows_for_bq.append((article_text, nl_response.categories[0].name, nl_response.categories[0].confidence))
print("Writing NL API article data to BigQuery...")
# Write article text + category data to BQ
if rows_for_bq:
errors = bq_client.insert_rows(table, rows_for_bq)
if errors:
print("Encountered errors while writing to BigQuery:", errors)
else:
print("No articles found in the specified bucket.")
Sekarang Anda siap untuk mulai mengklasifikasikan artikel dan mengimpornya ke BigQuery.
- Jalankan skrip berikut:
python3 classify-text.py
Penyelesaian skrip ini perlu waktu sekitar dua menit. Sambil menunggu, baca penjelasan tentang prosesnya.
Anda menggunakan library klien Python Google Cloud untuk mengakses Cloud Storage, Natural Language API, dan BigQuery. Pertama, klien dibuat untuk setiap layanan, lalu referensi dibuat ke tabel BigQuery. files adalah referensi ke setiap file set data BBC di bucket publik. File diperiksa, artikel didownload sebagai string, lalu setiap artikel dikirimkan ke Natural Language API dalam fungsi classify_text. Jika Natural Language API menghasilkan kategori untuk suatu artikel, artikel tersebut dan data kategorinya disimpan ke daftar rows_for_bq. Setelah proses klasifikasi setiap artikel selesai, data disisipkan ke BigQuery menggunakan insert_rows().
Catatan: Natural Language API dapat menghasilkan lebih dari satu kategori untuk sebuah dokumen, tetapi di lab ini, Anda hanya menyimpan kategori pertama yang dihasilkan agar lebih sederhana.
Setelah skrip selesai berjalan, verifikasi bahwa data artikel telah disimpan ke BigQuery.
- Di BigQuery, buka tabel
article_data di tab Explorer, lalu klik Query untuk mengkueri tabel:

- Edit hasilnya di kotak Unsaved query, dengan menambahkan tanda bintang di antara SELECT dan FROM:
SELECT * FROM `{{{project_0.project_id | Project ID}}}.news_classification_dataset.article_data`
- Sekarang, klik Run.
Anda akan melihat data Anda setelah kueri selesai.
- Scroll ke kanan untuk melihat kolom kategori.
Kolom category memiliki nama kategori pertama yang dihasilkan Natural Language API untuk artikel yang bersangkutan, dan confidence adalah nilai antara 0 dan 1 yang menunjukkan tingkat keyakinan API bahwa artikel dikategorikan dengan benar.
Anda akan mempelajari cara menjalankan kueri yang lebih kompleks pada data tersebut di langkah berikutnya.
Tugas 7. Menganalisis data berita yang telah dikategorikan di BigQuery
Pertama, lihat kategori mana yang paling umum dalam set data.
-
Di konsol BigQuery, klik + SQL query.
-
Masukkan kueri berikut:
SELECT
category,
COUNT(*) c
FROM
`{{{project_0.project_id | Project ID}}}.news_classification_dataset.article_data`
GROUP BY
category
ORDER BY
c DESC
- Sekarang, klik Run.
Anda akan melihat hasil kueri kira-kira seperti ini:

Jika Anda ingin menemukan artikel yang dikategorikan lebih spesifik seperti /Arts & Entertainment/Music & Audio/Classical Music, tulis kueri berikut:
SELECT * FROM `{{{project_0.project_id | Project ID}}}.news_classification_dataset.article_data`
WHERE category = "/Arts & Entertainment/Music & Audio/Classical Music"
Atau, Anda dapat menemukan artikel yang skor keyakinannya lebih dari 90% saja:
SELECT
article_text,
category
FROM `{{{project_0.project_id | Project ID}}}.news_classification_dataset.article_data`
WHERE cast(confidence as float64) > 0.9
Untuk menjalankan lebih banyak kueri pada data Anda, pelajari dokumentasi BigQuery. BigQuery juga terintegrasi dengan sejumlah alat visualisasi. Untuk membuat visualisasi data berita yang telah dikategorikan, lihat Looker Studio untuk BigQuery.
Selamat
Anda telah mempelajari cara menggunakan metode klasifikasi teks dengan Natural Language API untuk mengategorikan artikel berita. Anda memulainya dengan mengklasifikasikan satu artikel, lalu mempelajari cara mengklasifikasikan dan menganalisis set data berita berukuran besar menggunakan NL API dengan BigQuery. Anda juga telah mempelajari cara membuat tabel BigQuery dan menjalankan kueri pada data.
Langkah berikutnya untuk belajar lebih lanjut
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: 21 Maret 2025
Lab Terakhir Diuji: 21 Maret 2025
Hak cipta 2026 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.