Я пытаюсь отслеживать учетные записи Twitter нескольких предприятий, экспортируя твиты в .csv, чтобы посмотреть на позитивность или негативность твитов, которые включают название компании, которое затем будет визуализировано.
Чтобы мне было проще, я присваиваю каждому твиту только одно число, от 1 (отрицательное) до 10 (положительное), однако код, который я написал, не дает никакой обратной связи (остается на 0), получает застрял в цикле For или получил синтаксическую ошибку.
Используя блокнот Jupyter, я попытался создать 10-строчный оператор If / Elif - из-за того, что в Python нет оператора case, и вставил этот код как в метод 'get Tweets', так и в метод 'write csv' .
Получить твиты
api = tweepy.API(auth)
query = "ASOS"
language = "en"
results = api.search(q=query, lang=language, count=100)
for tweet in results:
if (not tweet.retweeted) and ('RT @' not in tweet.text):
print(tweet.user.screen_name,"Tweeted:",tweet.text,**rating**)
print()
Запись CSV
import csv
api = tweepy.API(auth)
csvFile = open('ASOS with emojis1.csv', 'a')
csvWriter = csv.writer(csvFile)
results = api.search(q=query, lang=language, count=100)
for tweet in results:
if (not tweet.retweeted) and ('RT @' not in tweet.text):
csvWriter.writerow([tweet.created_at, tweet.user.screen_name, tweet.text, **rating**])
csvFile.close()
Если / Elif Заявление, которое я написал
rating = '0'
if 'abysmal' or 'appalling' or 'dreadful' or 'awful' or 'terrible' or 'very bad' or 'really bad' or '?' or '?' or '?' in tweet.text:
(rating = '1')
elif 'rubbish' or 'unsatisfactory' or 'bad' or 'poor' or '?' or '?' or ':(' or '):' or '?' in tweet.text:
(rating = '2')
elif 'quite bad' or 'pretty bad' or 'somewhat bad' or 'below average' or '?' or '?' or '☹️' or '?' or '?' in tweet.text:
(rating = '3')
elif 'mediocre' or '?' or '?' or '?' or '?' or '?' in tweet.text:
(rating = '4')
elif 'average' or 'not bad' or 'fair' or 'alright' or 'ok' or 'satisfactory' or 'fine' or 'somewhat good' or '?' or '?' or '?' or '?' or '?' or '?' or '?' or 'omg' in tweet.text:
(rating = '5')
elif 'quite good' or 'decent' or 'above average' or 'pretty good' or 'good' or '?' or '?' or '?' or '?' or '?' in tweet.text:
(rating = '6')
elif 'great' or 'gr8' or 'really good' or 'rlly good' or 'very good' or 'v good' or '?' or '☺️' or '?' or '?' or '?' or '?' or '?' ':)' or '(:' or '?' or '?' or '?' or '?' or '?' in tweet.text:
(rating = '7')
elif 'awesome' or 'fantastic' or '?' or '?' or '?' or '?' or '❤' or '♥' or '?' or '?' or '✅' or '?' or '?' or '?' or '✨' in tweet.text:
(rating = '8')
elif 'superb' or 'brilliant' or 'incredible' or 'excellent' or 'oustanding' or '?' or '?' or '?' or '?' in tweet.text:
(rating = '9')
elif 'perfect' in tweet.text:
(rating = '10')
else:
(rating = 'N/A')
Ожидается: файл .csv с различными номерами в
.
Actual: (rating = '1') SyntaxError: неверный синтаксис