import tweepy
import json
import datetime
from rake_nltk import Rake
rake = Rake()
#Sentiment Analyzer
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
# Importing Keys
with open('keys.json') as keysfile:
keys = json.load(keysfile)
# Setting up Tweepy (Twitter API Wrapper for python)
auth = tweepy.OAuthHandler(keys['API_Key'], keys['API_Secret_Key'])
auth.set_access_token(keys['Access_Token'], keys['Access_Token_Secret'])
api = tweepy.API(auth)
def get_status_full_text(status):
if 'extended_tweet' in status.__dict__.keys():
return status.extended_tweet['full_text'] # extended text
elif 'retweeted_status' in status.__dict__.keys():
if "full_text" in status.retweeted_status.__dict__.keys():
return status.retweeted_status.full_text #retweet full text
else:
if status.retweeted_status.truncated:
return status.retweeted_status.extended_tweet['full_text'] # Retweet extended text full text
else:
return status.text #retweet normal text
else:
return status.text
total_sentiment = 0.0
Stocks_analized = 0
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
text = get_status_full_text(status)
print("##########################")
print(text)
print("## SENTAMINT ##")
sentiment = analyzer.polarity_scores(text) #create custom popularity score if ���� set compound == 0.7
global Stocks_analized
global total_sentiment
Stocks_analized += 1
total_sentiment+= sentiment['compound']
print(sentiment)
print(total_sentiment, Stocks_analized)
print("##########################")
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener, tweet_mode="extended")
myStream.filter(track=['$GME', '$AMC', '$NOK', '$BB'], is_async=True)
"""def GetStockSentimentOnDay(Stock_name, Sample_size, Day):
start_date = Day
end_date = Day + datetime.timedelta(days=1)
tweets_abt_stock = api.search("$GME", lang='en', result_type="popular", count=1, since=start_date, until=end_date, tweet_mode="extended")
print(tweets_abt_stock.next_results)
def run_func_on_all_tweets_for_day(queryed_statuses, max_tweets, func_to_run):
tweets_ran = 0
for tweet in queryed_statuses:
func_to_run(tweet)
tweets_ran += 1
if queryed_statuses.next_results != None or tweets_ran >= max_tweets:
run_func_on_all_tweets_for_day(queryed_statuses, max_tweets, func_to_run)
else:
print(f"Hit end of tweets, ran {tweets_ran} tweets")
def analyze_tweet_sentiment(tweet):
text = tweet.full_text
ps = analyzer.polarity_scores(text)
print(text, ps)
run_func_on_all_tweets_for_day(tweets_abt_stock, 1, analyze_tweet_sentiment)
GetStockSentimentOnDay(1,1,datetime.date(2021,1,30))
"""
没有合适的资源?快使用搜索试试~ 我知道了~
StockSentimentAnalysis:使用Twitter数据使用Twitter的API随时间分析股票情绪的程序
共3个文件
json:1个
gitignore:1个
py:1个
需积分: 9 1 下载量 65 浏览量
2021-02-08
06:08:21
上传
评论
收藏 4KB ZIP 举报
温馨提示
StockSentimentAnalysis:使用Twitter数据使用Twitter的API随时间分析股票情绪的程序
资源详情
资源评论
资源推荐
收起资源包目录
StockSentimentAnalysis-main.zip (3个子文件)
StockSentimentAnalysis-main
main.py 3KB
.gitignore 15B
dump.json 13KB
共 3 条
- 1
胡説个球
- 粉丝: 26
- 资源: 4613
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0