Twitter merupakan salah satu social media yang banyak digunakan orang. untuk melakukan analisa terhadap opini di twitter secara manual dengan jumlah data yang besar tidaklah mungkin. Dengan sentiment analysis hal ini dapat tertangani.
pada Sentiment Analysis biasanya hasil yang didapatkan adalah apakah tweet atau kalimat ini positif, negatif atau netral. Python merupakan salah satu bahasa pemrograman yang banyak digunakan dalam implementasi sentiment analysis.
sebelum kita melakukan sentiment analysis, langkah-langkah yang harus dilakukan adalah:
1. Siapkan aplikasi berupa ( Python dan Pycharm )
2. Lakukan pendaftaran apps yang akan analisis pada https://apps.twitter.com , untuk mendapatkan
key untuk mengakses twiiter, jangan lupa harus memiliki akun twiiter dan blog / website
3. Lakukan Collecting data dan Export data menjadi .txt
4. Siapkan file positife.txt dan negative.txt yang berisi keyword untuk melakukan sentimen analysis
5. Lakukan Sentiment Analysis terhadap data yang berhasil kita kumpulkan dan buat laporan dalam bentuk csv.
langkah - langkah tersebut akan dilakukan seperti dibawah ini :
1. Siapkan aplikasi berupa ( Python dan Pycharm )
I. Python
2. Pycharm
Pycharm : download disini
lalu ? install dan tunggu saja :D
2. Lakukan pendaftaran apps
Pada langkah ini, untuk mendapatkan key yang akan digunakan untuk ouath ketika melakukan penarikan data , perlu dilakukan pendaftaran pada https://apps.twitter.com
lengkapi data hingga apps berhasil dibuat :
setelah itu ambil key yang dibutuhkan :
simpen 4 key tadi:
consumer_key = ''consumer_secret = ''access_token = ''access_secret = ''
4 key ini adalah kerahasian data, jadi jangan di share umum ya :D
3. Lakukan Collecting data dan Export as .txt
Buat project terlebih dahulu lalu, default setting project dilakukan import library
pertama lakukan import tweepy pada project interpreter:
setting-> projet interpreter + modul -> search tweepy -> package install
setelah itu buat file , misalnya filetweeter.py :
dengan syntax sebagai berikut :
#Import the necessary methods from tweepy libraryfrom tweepy.streaming import StreamListener from tweepy import OAuthHandler from tweepy import Stream #Variables that contains the user credentials to access Twitter API consumer_key = 'Your key' consumer_secret = 'Your key' access_token = 'Your key' access_token_secret = ' Your key' #This is a basic listener that just prints received tweets to stdout.class StdOutListener(StreamListener): def on_status(self, status): try: with open('blackcampaign2.txt', 'a') as record: record.write(str(status.text) + '\n') return True except BaseException as e: print("Error on_data: %s" % str(e)) print(status.text) return True # def on_direct_message(self, data): # # print(data.text) # return True # def on_data(self, raw_data): # # if status.retweeted_status: # # return # print(raw_data) # return True def on_error(self, status_code): if status_code == 420: return False if __name__ == '__main__': #This handles Twitter authetification and the connection to Twitter Streaming API l = StdOutListener() auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) stream = Stream(auth, l) #This line filter Twitter Streams to capture data by the keywords: 'python',
'javascript', 'ruby' stream.filter(track=['#jokowi', 'jokowi', 'capres', '#prabowo', 'prabowo','#ahy', 'agus yudiyono', '#mahfud_md', 'mahfud md',])
Penjelasan :
def on_status(self, status): try: with open('blackcampaign.txt', 'a') as record: record.write(str(status.text) + '\n') return True except BaseException as e: print("Error on_data: %s" % str(e)) print(status.text) return True
adalah syntax untuk melakukan penarikan strem collecting data.
- on_status berarti data yang diambil hanya status ( text nya saja )
- with open('nama csv yang dibuat', 'a') as record
ket : a = append membuat baru
- record.write(......)
ket: aturan dalam penulisan data yang di tarik.
- stream.filter(track=["keyword pencarian tweets"])
ket: filter tweet yang ingin kita tarik
kesimpulannya pada stream collecting data , dilakukan penarikan data hanya status ( text nya saja ) , dan di export to .txt
berikut contoh hasilnya : download disini
4. Siapkan file positife.txt dan negative.txt
file ini berfungsi untuk bank kata dalam pencarian kata-kata yang akan dilakukan sentiment analysis
positif : download disini
negatif: download disini
5. Lakukan Sentiment Analysis
sentiment analysis pertweet yang mengandung kata positif dan negatif , dengan source code sebagai berikut:
from __future__ import division import csv from string import punctuation positive_word = [] negative_word = [] positive_counts = [] negative_counts = [] clean_tweets = [] header = [("tweets","positif","negatif","posiftif %","negative %")] # header = [("tweets","positif","negatif","clean tweets")] tweets = open("source/blackcampaign.txt").read() tweets_list = tweets.split('\n') pos_sent = open("source/positive.txt").read() positive_words = pos_sent.split('\n') neg_sent = open("source/negative.txt").read() negative_words = neg_sent.split('\n') for tweet in tweets_list: text_positif=[] text_negatif=[] positive_counter = 0 negative_counter = 0 tweet_procces_2 = tweet.replace('!', '').replace('.', '') tweet_processed = tweet_procces_2.lower() for p in list(punctuation): tweet_processed = tweet_processed.replace(p, '') clean_tweets.append(tweet_processed) words = tweet_processed.split(' ') word_count = len(words) for word in words: if word in positive_words: text_positif.append(word) positive_counter = positive_counter+1 elif word in negative_words: text_negatif.append(word) negative_counter = negative_counter+1 positive_counts.append((positive_counter / word_count)*100) negative_counts.append((negative_counter / word_count)*100) positive_word.append(text_positif) negative_word.append(text_negatif) # output = zip(tweets_list, positive_counts, negative_counts, clean_tweets)output = zip(clean_tweets, positive_word, negative_word, positive_counts, negative_counts) title = header writer = csv.writer(open('source/Hasil_sentiment_analysis.csv', 'wb')) writer.writerows(title) writer.writerows(output)
disini akan ada pengecekan perkata apakah termasuk positife atau negatif yang terus berulang hingga semua tweet berhasil dianalisis, berikut hasilnya :
>>hasil sentiment analysi <<
Post ini merupakan tugas kelompok, dengan beranggotakan:
- Alza Ichsan Kurniawan 50414925
- Annisa larasati arifianti 51414380
- Deni Mardiana 52414694
- Hasan El Jabir 54414837
Berikut video untuk lebih mudah memahami sentiment analysis:
Link Refrence :
http://codingasik.com/sentiment-analysis-dengan-python-part-3/
https://marcobonzanini.com/2015/03/02/mining-twitter-data-with-python-part-1/
google.com
deep learning , pycharm , python , sentiment analysis , twitter