Beranda > Tugas Kuliah > Deep Learning - Sentiment Analisis Kata Autism pada Twitter dengan Python

Deep Learning - Sentiment Analisis Kata Autism pada Twitter dengan Python

Adi Nugraha Y 50414234 3ia03
Selasa, 20 Maret 2018
Kelompok :
Adi Nugraha Yunanda 50414234
M. Ilham Afemi 57414327
Rio Octaviano 59414462
Muhammad Ulil Amri 57414576

Hal yang dibutuhkan

Akun Twitter
Python versi 3.6.x

Kode

import twitter          # menangani API Twitter
import pandas as pd     # menangani Data
import numpy as np      # menangani Komputasi angka

# For plotting and visualization:
from IPython.display import display

from textblob import TextBlob
import re

# keyword yang mau dicari
QUERY  = "autism"
# banyak tweet yang ingin didapat
COUNT = 30


#consumers
C_KEY  = 'jOpIWjAivmBusTjtUffWXVk0A'
C_SEC  = 'JFdRhvIJICqDUed0h2y2RIpL5wQHex6QmOixmXCzPeZQjw5dQj'
#access token
AT_KEY = '974493124125802496-byVzjdQH1eirceDZ7cl560jw8Bc7qYG'
AT_SEC = 'm3S02Ek7ucAd4R7ncEoyYaNEMJnZvvUZ6dnmT9ORehY3V




api = twitter.Api(consumer_key=C_KEY,      consumer_secret=C_SEC,
                  access_token_key=AT_KEY, access_token_secret=AT_SEC)

tweets = api.GetSearch(
    raw_query="q=%s&count=%i&result_type=recent&lang=en" % (QUERY,COUNT))


# membentuk data frame dengan kolom Tweets
data = pd.DataFrame(data=[tweet.text for tweet in tweets], columns=['Tweets'])

# tampilkan deret data pada dataframe
display(data.head(COUNT))

# tambahkan data lainnya yang mendukung
data['len']  = np.array([len(tweet.text) for tweet in tweets])
data['ID']   = np.array([tweet.id for tweet in tweets])
data['Date'] = np.array([tweet.created_at for tweet in tweets])
data['Source'] = np.array([tweet.source for tweet in tweets])
data['Likes']  = np.array([tweet.favorite_count for tweet in tweets])
data['RTs']    = np.array([tweet.retweet_count for tweet in tweets])

# hitung rata-rata banyak data
mean = np.mean(data['len'])

def clean_tweet(tweet):
    '''
    fungsi ini bertugas untuk membersihkan tweet dari
    selain abjad dan angka dengan memanfaatkan format
    regex
    '''
    return ' '.join(
        re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)", " ", tweet).split())

def analize_sentiment(tweet):
    '''
    fungsi ini bertugas untuk memisahkan polaritas tweet
    dengan menggunakan textblob
    '''
    analysis = TextBlob(clean_tweet(tweet))
    if analysis.sentiment.polarity > 0:
        return 1
    elif analysis.sentiment.polarity == 0:
        return 0
    else:
        return -1

# buat kolom yang berisi hasil analisis sentimen
data['SA'] = np.array([ analize_sentiment(tweet) for tweet in data['Tweets'] ])

# buat deret pengelompokkan tweets
pos_tweets = [ tweet for index, tweet in enumerate(data['Tweets']) if data['SA'][index] > 0]
net_tweets = [ tweet for index, tweet in enumerate(data['Tweets']) if data['SA'][index] == 0]
neg_tweets = [ tweet for index, tweet in enumerate(data['Tweets']) if data['SA'][index] < 0]

# Cetak persentase
print(("\n\nAnalisis sentimen Bahasa Inggris terhadap kata %s sebanyak %i tweet\n"+ \
      "  - Positif : %.2f\n"+ \
      "  - Netral  : %.2f\n"+ \
      "  - Negatif : %.2f\n") % (\
              QUERY, COUNT, \
              (len(pos_tweets)*100/len(data['Tweets'])),\
              (len(net_tweets)*100/len(data['Tweets'])),\
              (len(neg_tweets)*100/len(data['Tweets'])) \
                                )\
      )



Untuk mendapatkan Consumers dan Access Token, buat Twitter Apps dengan mengunjungi situs https://apps.twitter.com/. Setelah Apps berhasil dibuat, pindah ke tab Keys and Access Token dan akan terlihat kode tersebut.

Hasil

https://dev.to/rodolfoferro/sentiment-analysis-on-trumpss-tweets-using-python-

Tidak ada Komentar

Posting Komentar

Cancel Reply
< >
Drawing codeSyalalala!