IF OBJECT_ID('tempdb.dbo.#tmpTweets', 'U') IS NOT NULL DROP TABLE #tmpTweets; CREATE TABLE #tmpTweets ( TweetID BIGINT, UserID VARCHAR(60), Text NVARCHAR(250), TimeStamp DATETIME, Score FLOAT, Sentiment NVARCHAR(10) ) DECLARE @script NVARCHAR(MAX); SET @script = N' import pandas as p from twitter import Twitter, OAuth, TwitterHTTPError, TwitterStream import datetime from datetime import timedelta from microsoftml import rx_featurize, get_sentiment # Connect to Twitter consumer_key = "eNtErYoUrTwItTeRCoNsUmErKeYhErE" consumer_secret = "eNtErYoUrTwItTeRCoNsUmErSeCrEtHeRe" access_key = "eNtErYoUrTwItTeRaCcEsSkEyHeRe" access_secret = "eNtErYoUrTwItTeRaCcEsSeCrEtHeRe" twitter = Twitter(auth = OAuth(access_key, access_secret, consumer_key, consumer_secret)) # To get tweets since the day before as this code will run once daily since_time = datetime.datetime.utcnow()+timedelta(minutes=-1440) # Query for recent items with the given hashtag query = twitter.search.tweets(q = "#MachineLearning", count=1000, since=since_time.strftime("%Y-%m-%d")) df = p.DataFrame(columns=["tweetid","userhandle","tweet"]) for result in query["statuses"]: dt=datetime.datetime.strptime(result["created_at"], "%a %b %d %H:%M:%S +0000 %Y").strftime("%Y-%m-%d %H:%M:%S") df = df.append({"tweetid":result["id"],"userhandle":result["user"]["screen_name"], "tweet": result["text"], "timestamp":dt}, ignore_index=True) # Get the sentiment scores sentiment_scores = rx_featurize(data=df,ml_transforms=[get_sentiment(cols=dict(scores="tweet"))]) # Translate into sentiment buckets sentiment_scores["Sentiment"] = sentiment_scores.scores.apply(lambda score: "Positive" if score >= 0.5 else "Negative")'; INSERT INTO #tmpTweets EXECUTE sp_execute_external_script @language = N'Python',@script = @script,@output_data_1_name = N'sentiment_scores'