Proses Topic Modelling / Word Cloud
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.
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
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
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))
Ekspor ke CSV
Untuk dapat diproses ulang, kita harus menyimpannya dalam bentuk csv. Masih memanfaatkan variabel data.
data.to_csv('scraping-nanggala.csv')
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')
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()
Selanjutnya kita mengambil bagian Tweet saja dan menampilkan 10 data.
label = dataset['Tweet']
label[:10]
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()
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()
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()
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.