@TristanIsaac/

AliveBeigePackagedsoftware

Python

No description

fork
loading
Files
  • main.py
  • requirements.txt
  • Sentiment_Analysis.csv
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import os
import sys
import csv
import tweepy
import matplotlib.pyplot as plt

from collections import Counter
from aylienapiclient import textapi

open_kwargs = {}

if sys.version_info[0] < 3:
    input = raw_input
else:
    open_kwargs = {'newline': ''}


# API sleutels
# Twitter
consumer_key = "U0XDrgMEgpg0AQHmnZNUuqq1T"
consumer_secret = "XJeGX4T0X05RXyB2dxCJzUxYwfnH0SsF3Edh6f35ANZbEknYrm"
access_token = "64766943-x2sqCqMF7BNDFmWpSI3c00Xm1wefGMtQOWMUxA7or"
access_token_secret = "j9qMYJL3WrC12YPkM6cxWHQsbCd5r1tGNMoAQBViWp60J"

# AYLIEN
application_id = "0e3dfb53"
application_key = "8ae333ef4e34614acb285e4b0e0c2e75"

#####

# Opstart tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# Opstart aylien
client = textapi.Client(application_id, application_key)

# Benoem hier de variabel van eht csv bestand die het programma moet aanmaken en laat het programma de laatste tweet inlezen indien deze al bestaat
max_id = 0

file_name = 'Sentiment_Analysis.csv'

if os.path.exists(file_name):
    with open(file_name, 'r') as f:
        for row in csv.DictReader(f):
            max_id = row['Tweet_ID']
else:
        with open(file_name, 'w', **open_kwargs) as f:
            csv.writer(f).writerow([
                                    "Tweet_ID",
                                    "Time",
                                    "Tweet",
                                    "Sentiment"])

results = api.search(
    lang="en", #Ondersteunde talen voor Aylien Sentiment Analysis: Engels (en), Duits (de) en Spaans (es) 
    q="climate -rt", #Kies hier je onderwerp
    result_type="recent", #Typ zoekresultaten, mogelijkheden: mixed, recent & popular
    count=50, #aantal tweets om te analyseren, maximum 100
    since_id=max_id
)

results = sorted(results, key=lambda x: x.id)

print("--- Je opgevraagde Tweets zijn verzameld  --- \n")

#Hier geef je de namen in van de kolommen voor het CSV bestand
with open(file_name, 'a', **open_kwargs) as csvfile:
    csv_writer = csv.DictWriter(
        f=csvfile,
        fieldnames=[
                    "Tweet_ID",
                    "Time",
                    "Tweet",
                    "Sentiment"]
    )

    print("--- CSV om de gegevens in op te slaan geopend... \n")

    #kuis de Tweets verzend ze naar de AYLIEN Text API
    for c, result in enumerate(results, start=1):
        tweet = result.text
        tidy_tweet = tweet.strip().encode('ascii', 'ignore')
        tweet_time = result.created_at
        tweet_id = result.id

        if not tweet:
            print('Empty Tweet')
            continue

        response = client.Sentiment({'text': tidy_tweet})
        csv_writer.writerow({
        	"Tweet_ID": tweet_id,
        	"Time": tweet_time,
            'Tweet': response['text'],
            'Sentiment': response['polarity'],
        })

        print("Tweet {} geanalyseerd en opgeslagen in Sentinemt_Analysis.csv".format(c))