tugas analisis sentimen deep learning

nama kelompok
Adi Nugraha Y 50414234
M Ulil Amri 57414576
M Ilham Afemi 57414327
Rio Octaviano 59414462


Disini kita menggunakan bahasa phyton untuk melakukan analisa sentimen, serta kita pilih API twitter. Fokus analisa sentimen bertema pembulian. berikut caranya:

ketikan code program dibawah ini dan execute 1 per 1 pada IDLE phyton yang sudah diinstall, disini kita menggunakan phyton versi 3.6

import sys
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
import matplotlib.pyplot as plt
import seaborn as sns

from textblob import TextBlob
import re

#############################################################




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


'''
kode konsumer dan access token didapat dari
registrasi aplikasi client
'''
#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'])) \
                                )\
      )

#selesai
sys.exit(0)

ini adalah output yang di hasilkan program diatas


Komentar

Postingan populer dari blog ini

uts gunadarma

Analisis Serta Perbandingan Game Engine