Proses Topic Modelling / Word Cloud

Ade Prasetyo
5 min readApr 27, 2021

--

Bagaimana cara menampilkan data teks agar menarik dan mudah dipahami? Jelas lebih baik menggunakan diagram daripada tabel yang berisi angka. Ada bermacam-macam grafik yang bisa dimanfaatkan. Untuk data teks, word cloud merupakan salah satu alternatif. Dalam tulisan ini saya akan memperkenalkan proses modelling atau Word Cloud dengan memanfaatkan bahasa pemrograman python dan library pendukungnya.

Word Cloud

Pengenalan

Word cloud adalah teknik untuk menampilkan data teks secara visual. Grafik ini terkenal dalam text mining karena sangat sederhana. Dengan memanfaatkan word cloud, penggambaran pengulangan kata dapat ditampilkan dalam struktur yang menarik namun tetap informatif. Semakin sering satu kata digunakan, semakin besar ukuran kata yang ditampilkan di word cloud.

Sekarang kita akan melakukan Topic Modelling atau Word Cloud. Sebelum kita melakukan Word Cloud, kita akan menyelesaikan beberapa proses terlebih dahulu, diantaranya kita akan scraping data dari Twitter setidaknya 5000 data, kemudian kita export data tersebut menjadi csv / excel, akhirnya kita lakukan topic modelling. Semuanya selesai memanfaatkan bahasa pemrograman python dan Google Colab.

Persiapan

Sebelum memulai kita perlu bersiap terlebih dahulu.

Google Colab

Google Colab adalah coding environment untuk bahasa pemrograman python dengan desain “notebook” (seperti Jupyter notebook), atau secara keseluruhan, Google meminjamkan PC kepada kita secara gratis untuk memprogram atau menangani pengolahan data dari Google. Notebook Colab menggabungkan kode yang dapat dieksekusi dan rich text dalam satu dokumen, beserta gambar, HTML, LaTeX, dan lainnya. Ketika kitamembuat Notebook Colab, itu akan disimpan di akun Google Drive kita. Berikut link untuk mendapatkannya https://colab.research.google.com/.

API Twitter

API Twitter adalah aplikasi yang dibuat oleh Twitter untuk memudahkan tpihak developer lain mendapatkan data web Twitter. Berikutnya adalah link dokumentasinya https://developer.twitter.com/en/docs.

Untuk mendapatkan API Twitter, kita dapat mendaftar di https://developer.twitter.com/en/products/twitter-api. Pastikan kita memiliki akun twitter dan pilih sebagai student. Untuk mendapatkannya, kalian akan melengkapi beberapa kuesioner.

Tweepy

Tweepy adalah paket atau library bahasa pemrograman python, yang memungkinkan kita bekerja sama dengan API yang diberikan oleh Twitter. Berikutnya adalah link dokumentasinya http://docs.tweepy.org/. Cara untuk menginstallnya :

!pip install tweepy

Natural Language Toolkit (NLTK)

Natural Language Toolkit (NLTK) adalah perangkat yang sangat umum dalam Natural Language Processing (NLP) yang menggunakan bahasa pemrograman Python. Natural Language Toolkit (NLTK) ini benar-benar mendukung tinggi pengolahan bahasa yang khas seperti classification, tokenisasi, stemming, tagging, parsing dan sebagainya. Berikut adalah link dokumentasinya https://www.nltk.org/. Cara untuk menginstallnya :

!pip install nltk

Kemudian mengunduh paket NLTK :

import nltk
nltk.download()

Pembahasan

Langsung saja kita masuk dalam pembahasannya.

Scraping Data Twitter

Kita akan menginstall library tweepy.

!pip install tweepy
Instalasi tweepy

Selanjutnya kita mengimpor library.

import tweepy
import pandas as pd
import numpy as np

Selanjutnya kita menyiapkan API Key dan Token.

API_key = 'isi api key'
API_secret_key = 'isi api secret key'
access_token = 'isi access token'
access_token_secret = 'isi access token secret'

Selanjutnya kita akan melakukan authentikasi.

auth = tweepy.OAuthHandler(API_key, API_secret_key)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

Selanjutnya kita akan melakukan scraping terhadap kata “nanggala” sebanyak 5000 data.

tweets = api.search('nanggala', count=5000, lang='id')

Selanjutnya kita akan menampilkan data tweet yang sudah didapat.

tweets
Tweet yang didapat

Selanjutnya kita akan mencoba menampilkan 25 informasi dalam bentuk tabel dengan bantuan library pandas.

data = pd.DataFrame()
data['Created At'] = [tweet.created_at for tweet in tweets]
data['Screen Name'] = [tweet.user.screen_name for tweet in tweets]
data['Tweet'] = [tweet.text for tweet in tweets]
data['Location'] = [tweet.user.location for tweet in tweets]
data['Number of Retweet'] = [tweet.retweet_count for tweet in tweets]
data['Number of Like'] = [tweet.favorite_count for tweet in tweets]
display(data.head(25))
Tweet dalam bentuk tabel

Ekspor ke CSV

Untuk dapat diproses ulang, kita harus menyimpannya dalam bentuk csv. Masih memanfaatkan variabel data.

data.to_csv('scraping-nanggala.csv')
Sebelum disimpan
Setelah disimpan

Selanjutnya kita mengunduh dan memasukkannya ke Google Drive.

Topic Modelling atau Word Cloud

Pertama import dulu library.

import pandas as pd
import numpy as np
import re
import nltk
import matplotlib.pyplot as plt
%matplotlib inline

Selanjutnya kita lakukan mounting Google Drive.

from google.colab import drive
drive.mount('/content/drive')
Drive setelah dilakukan mounting

Selanjutnya kita akan membaca dokumen csv.

dataset = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/scraping-nanggala.csv")

Selanjutnya kita mencoba untuk menampilkan 5 data awal.

dataset.head()
Menampilkan 5 data awal

Selanjutnya kita mengambil bagian Tweet saja dan menampilkan 10 data.

label = dataset['Tweet']
label[:10]
Menampilkan tweet 10 data

Selanjutnya kita mengimpor NLTK.

import nltk
nltk.download('punkt')
nltk.download('stopwords')

Selanjutnya kita melakukan stopword bahasa Indonesia.

from nltk.corpus import stopwords
stop=nltk.corpus.stopwords.words('indonesian')
label = label.apply(lambda x: " ".join(x for x in x.split() if x not in stop))
label.head()
Setelah dilakukan stopword

Selanjutnya kita menghilangkan tanda baca, “RT”, dan angka.

label = label.str.replace('[^\w\s]','')
label = label.str.replace('RT','')
label = label.str.replace('[\d]', '')
label.head()
Setelah menghilangkan tanda baca

Selanjutnya kita tampilkan dalam bentuk Word Cloud.

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
word_string=" ".join(label.str.lower())
wordcloud = WordCloud(stopwords=STOPWORDS, background_color='white', ).generate(word_string)plt.figure(figsize=(15,10))
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
Word Cloud

Dalam word cloud kita mendapatkan kata-kata yang secara teratur muncul, khususnya yaitu kri nanggala, kapal selam, selam pengganti, beli kapal, nanggala, galang donasi, selam kri, dan sebagainya.

Penutup

Dalam tulisan ini, Saya mencoba melakukan proses Topic Modelling atau Word Cloud, mulai dari scrapingmenggunakan library Tweezy lalu melakukan export ke CSV untuk diproses kembali nanti hingga word cloud terjad. Masih banyak hal yang dapat Anda lakukan. Semoga sukses dan tetap menjaga kesehatan.

--

--

Ade Prasetyo
Ade Prasetyo

No responses yet