├── KELOMPOK-152_1301194024_TUBES-PROYEK.pdf ├── README.md └── tweet_crawling.py /KELOMPOK-152_1301194024_TUBES-PROYEK.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShinyQ/Naive-Bayes_Sentiment-Analysis-of-Government-COVID-19-Vaccination-Policy/HEAD/KELOMPOK-152_1301194024_TUBES-PROYEK.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Analisis Sentimen Kebijakan Vaksinasi COVID-19 - Tugas Besar WawasanGlobal-TIK 2 | Analisis sentimen dari masyarakat Indonesia terhadap kebijakan pemerintah mengenai vaksin COVID-19 yang akan dibagikan secara gratis kepada masyarakat Indonesia. Tujuan penelitian ini berguna bagi Pemerintah Indonesia untuk mengetahui kepercayaan masyarakat terhadap vaksin COVID-19 yang akan mulai dibagikan. 3 | -------------------------------------------------------------------------------- /tweet_crawling.py: -------------------------------------------------------------------------------- 1 | from tweepy import OAuthHandler 2 | from tweepy.streaming import StreamListener 3 | import tweepy 4 | import pandas as pd 5 | import csv 6 | import os 7 | import time 8 | from configparser import ConfigParser 9 | 10 | config = ConfigParser() 11 | config.read('tweet_key.ini') 12 | 13 | access_token = config.get('key', 'access_token') 14 | access_token_secret = config.get('key', 'access_token_secret') 15 | consumer_key = config.get('key', 'consumer_key') 16 | consumer_secret = config.get('key', 'consumer_secret') 17 | 18 | auth = OAuthHandler(consumer_key, consumer_secret) 19 | auth.set_access_token(access_token, access_token_secret) 20 | api = tweepy.API(auth) 21 | 22 | def scraptweets(search_words, date_since, date_until, numTweets): 23 | 24 | db_tweets = pd.DataFrame(columns=[ 25 | 'username', 'acctdesc', 'location', 'following', 26 | 'totaltweets', 'usercreatedts', 'tweetcreatedts', 27 | 'retweetcount', 'text', 'hashtags', 'followers', 28 | ]) 29 | program_start = time.time() 30 | 31 | tweets = tweepy.Cursor( 32 | api.search, q=search_words, lang="id", 33 | since=date_since, tweet_mode='extended').items(numTweets) 34 | 35 | tweet_list = [tweet for tweet in tweets] 36 | 37 | for tweet in tweet_list: 38 | username = tweet.user.screen_name 39 | acctdesc = tweet.user.description 40 | location = tweet.user.location 41 | following = tweet.user.friends_count 42 | followers = tweet.user.followers_count 43 | totaltweets = tweet.user.statuses_count 44 | usercreatedts = tweet.user.created_at 45 | tweetcreatedts = tweet.created_at 46 | retweetcount = tweet.retweet_count 47 | hashtags = tweet.entities['hashtags'] 48 | 49 | try: 50 | text = tweet.retweeted_status.full_text 51 | except AttributeError: 52 | text = tweet.full_text 53 | 54 | ith_tweet = [ 55 | username, acctdesc, location, following, followers, totaltweets, 56 | usercreatedts, tweetcreatedts, retweetcount, text, hashtags 57 | ] 58 | 59 | db_tweets.loc[len(db_tweets)] = ith_tweet 60 | 61 | filename = 'covid_vaccine_tweets.csv' 62 | db_tweets.to_csv(filename, index=False) 63 | 64 | program_end = time.time() 65 | print('Scraping has completed!') 66 | print('Total time taken to scrap is {} minutes.'.format(round(program_end - program_start)/60, 2)) 67 | 68 | 69 | search_words = "#vaksin OR #vaksincovid19 OR #vaksincovid OR #VaksinUntukKita OR #vaksingratis" 70 | date_since = "2020-12-01" 71 | date_until = "2020-12-02" 72 | numTweets = 1000 73 | 74 | scraptweets(search_words, date_since, date_until, numTweets) 75 | --------------------------------------------------------------------------------