implement scores for roberta and germanSentiment
This commit is contained in:
parent
52223192b4
commit
fae306916f
2 changed files with 11 additions and 7 deletions
6
Main.py
6
Main.py
|
|
@ -25,7 +25,7 @@ crudManager = CRUDManager()
|
||||||
|
|
||||||
lastTootId = crudManager.getLastToot()
|
lastTootId = crudManager.getLastToot()
|
||||||
tootsDataframe = tootCrawler.buildTootsDataframe(lastTootId)
|
tootsDataframe = tootCrawler.buildTootsDataframe(lastTootId)
|
||||||
|
exit()
|
||||||
if not tootsDataframe.empty:
|
if not tootsDataframe.empty:
|
||||||
crudManager.saveToDatabase(tootsDataframe, 'Toots', useIndex=False)
|
crudManager.saveToDatabase(tootsDataframe, 'Toots', useIndex=False)
|
||||||
else:
|
else:
|
||||||
|
|
@ -93,6 +93,6 @@ axes[1].tick_params(which='minor', length=0)
|
||||||
plotFileUrl = f'./plots/{TodayDate}.png'
|
plotFileUrl = f'./plots/{TodayDate}.png'
|
||||||
plt.savefig(plotFileUrl)
|
plt.savefig(plotFileUrl)
|
||||||
|
|
||||||
media = mastodonInstance.media_post(plotFileUrl, mime_type="image/png", description=f"Sentiment analysis of local timeline on fedihum.org, showing the moods of the toots on, and the sentiment mean up to {TodayDate}.")
|
#media = mastodonInstance.media_post(plotFileUrl, mime_type="image/png", description=f"Sentiment analysis of local timeline on fedihum.org, showing the moods of the toots on, and the sentiment mean up to {TodayDate}.")
|
||||||
mastodonInstance.status_post(f'The moods of the toots on and up to {TodayDate}.', media_ids=media, language='en')
|
#mastodonInstance.status_post(f'The moods of the toots on and up to {TodayDate}.', media_ids=media, language='en')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,21 +31,25 @@ class SentiTooter:
|
||||||
def analyze(self, language, content):
|
def analyze(self, language, content):
|
||||||
match language:
|
match language:
|
||||||
case 'de':
|
case 'de':
|
||||||
sentiment = self.deModel.predict_sentiment([content])
|
sentimentList, probabilitiesList = self.deModel.predict_sentiment([content], output_probabilities=True)
|
||||||
sentiment.append('germanSentiment')
|
sentiment = sentimentList[0]
|
||||||
return sentiment
|
score = {i[0]: i[1] for i in probabilitiesList[0]}[sentiment]
|
||||||
|
return [sentiment, 'germanSentiment', score]
|
||||||
case 'en':
|
case 'en':
|
||||||
text = preprocess(content)
|
text = preprocess(content)
|
||||||
encoded_input = self.enTokenizer(text, return_tensors='pt')
|
encoded_input = self.enTokenizer(text, return_tensors='pt')
|
||||||
output = self.enModel(**encoded_input)
|
output = self.enModel(**encoded_input)
|
||||||
scores = output[0][0].detach().numpy()
|
scores = output[0][0].detach().numpy()
|
||||||
scores = softmax(scores)
|
scores = softmax(scores)
|
||||||
|
print(scores)
|
||||||
sentimentIndexWithMaxScore = np.argmax(scores)
|
sentimentIndexWithMaxScore = np.argmax(scores)
|
||||||
sentimentLabel = self.labels[sentimentIndexWithMaxScore]
|
sentimentLabel = self.labels[sentimentIndexWithMaxScore]
|
||||||
sentiment = [sentimentLabel, 'twitter-roberta-base-sentiment']
|
sentiment = [sentimentLabel, 'twitter-roberta-base-sentiment', max(scores)]
|
||||||
|
print(sentiment)
|
||||||
return sentiment
|
return sentiment
|
||||||
case _:
|
case _:
|
||||||
compound = self.sia.polarity_scores(content)['compound']
|
compound = self.sia.polarity_scores(content)['compound']
|
||||||
|
print(self.sia.polarity_scores(content), 'vaderSentiment')
|
||||||
if compound > (1 / 3):
|
if compound > (1 / 3):
|
||||||
return ['positive', 'vaderSentiment']
|
return ['positive', 'vaderSentiment']
|
||||||
elif compound < (-1 / 3):
|
elif compound < (-1 / 3):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue