import string
from collections import Counter
# import matplotlib.pyplot as plt
from nltk.corpus import stopwords
from nltk.sentiment.vader import SentimentIntensityAnalyzer
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize


text = open('read.txt', encoding='utf-8').read()
lower_case = text.lower()
cleaned_text = lower_case.translate(str.maketrans('', '', string.punctuation))

# Using word_tokenize because it's faster than split()
tokenized_words = word_tokenize(cleaned_text, "english")

# Removing Stop Words
final_words = []
for word in tokenized_words:
    if word not in stopwords.words('english'):
        final_words.append(word)

# Lemmatization
lemma_words = []
for word in final_words:
    word = WordNetLemmatizer().lemmatize(word)
    lemma_words.append(word)

emotion_list = []
with open('emotions.txt', 'r') as file:
    for line in file:
        clear_line = line.replace("\n", '').replace(",", '').replace("'", '').strip()
        word, emotion = clear_line.split(':')

        if word in lemma_words:
            def sentiment_analyse(sentiment_text):
                score = SentimentIntensityAnalyzer().polarity_scores(sentiment_text)
                print(word)
                print(score)
                if score['neg'] > score['pos']:
                    print("Negative Sentiment")
                    emotion_list.append(emotion)
                elif score['neg'] < score['pos']:
                    print("Positive Sentiment")
                    emotion_list.append(emotion)
                else:
                    print("Neutral Sentiment")
                    emotion_list.append(emotion)

            sentiment_analyse(word)

print(emotion_list)
w = Counter(emotion_list)
print(w)



