def get_raw_features(year, quarter, ticker, path): #we want to predict stock improvement risk_factors = get_risk_factors(path) qtr_stock_price = get_avg_qtr_stock_quote(ticker, year, quarter) improvement = get_next_qtr_stock_quote(ticker, year, quarter) - qtr_stock_price features = {'risk_factors': risk_factors, 'stock_improvement': improvement} return features
def get_predict_features(year, quarter, ticker, path): risk_factors = get_risk_factors(path) emotions = emotion_analysis(risk_factors) sentiment = sentiment_analysis(risk_factors) qtr_stock_price = get_avg_qtr_stock_quote(ticker,year,quarter) features = {'anger': emotions['anger'], 'disgust': emotions['disgust'], 'fear': emotions['fear'], 'joy': emotions['joy'], 'sadness': emotions['sadness'], 'sentiment': sentiment, 'sentiment_type': (lambda x : -1 if x < -0.25 else 1 if x > 0.25 else 0)(sentiment)} #(lambda x : 'negatve' if x < -0.25 else 'positive' if x > 0.25 else 'neutral') return features
def get_training_features(year, quarter, ticker, path): #we want to predict stock improvement risk_factors = get_risk_factors(path) emotions = emotion_analysis(risk_factors) sentiment = sentiment_analysis(risk_factors) qtr_stock_price = get_avg_qtr_stock_quote(ticker,year,quarter) improvement = get_next_qtr_stock_quote(ticker,year,quarter) - qtr_stock_price features = {'anger': emotions['anger'], 'disgust': emotions['disgust'], 'fear': emotions['fear'], 'joy': emotions['joy'], 'sadness': emotions['sadness'], 'sentiment': sentiment, 'sentiment_type': (lambda x : -1 if x < -0.25 else 1 if x > 0.25 else 0)(sentiment), #(lambda x : 'negatve' if x < -0.25 else 'positive' if x > 0.25 else 'neutral') 'stock_improvement': improvement} return features
def get_last_qtr_stock_quote(ticker, year, qtr): last_qtr = ((qtr - 2) % 4) + 1 if last_qtr == 4: year -= 1 return get_avg_qtr_stock_quote(ticker, year, last_qtr)
def get_next_qtr_stock_quote(ticker, year, qtr): next_qtr = (qtr % 4) + 1 if next_qtr == 1: year += 1 return get_avg_qtr_stock_quote(ticker, year, next_qtr)