I want to calculate Accuracy based on the new compound column. The if statement is giving me an error.
Error is
Rating Review Liked scores compound score
0 30 A major gripe however is that the on site res... 0 {'neg': 0.091, 'neu': 0.909, 'pos': 0.0, 'comp... -0.4199 neg
1 30 According to reception staff the hotel is wor... 0 {'neg': 0.141, 'neu': 0.784, 'pos': 0.074, 'co... -0.7572 neg
2 20 As Black person I was treated to the poorest ... 0 {'neg': 0.109, 'neu': 0.856, 'pos': 0.035, 'co... -0.7184 neg
3 30 Ask member of staff for coffee/tea, otherwise... 0 {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound... 0.0000 pos
4 20 At every place except this hotel we were give... 0 {'neg': 0.065, 'neu': 0.896, 'pos': 0.04, 'com... -0.1779 neg
Error is
Error is
# Importing Libraries import numpy as np import pandas as pd import nltk #nltk.download('vader_lexicon') from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer sid = SentimentIntensityAnalyzer() pos_count = 0 pos_correct = 0 neg_count = 0 neg_correct = 0 # creating object of SentimentIntensityAnalyzer # Import dataset df = pd.read_csv("../Hotel_Reviews_SA.tsv", delimiter = '\t') #df = pd.read_csv('../Restaurant_Reviews.tsv',sep='\\t') df.head() df.dropna(inplace=True) sid.polarity_scores(df.iloc[0]['Review']) #vs = sid.polarity_scores(df.iloc[0]['Review']) df['scores'] = df['Review'].apply(lambda review:sid.polarity_scores(review)) df.head() df['compound'] = df['scores'].apply(lambda d:d['compound']) df.head() df['score'] = df['compound'].apply(lambda score: 'pos' if score >=0 else 'neg') #new code if df['compound'] > 0: pos_correct += 1 pos_count +=1 #end of new code #new code #print("Positive accuracy = {}% via {} samples".format(pos_correct/pos_count*100.0, pos_count)) #print("Negative accuracy = {}% via {} samples".format(neg_correct/neg_count*100.0, neg_count)Data head is;
Rating Review Liked scores compound score
0 30 A major gripe however is that the on site res... 0 {'neg': 0.091, 'neu': 0.909, 'pos': 0.0, 'comp... -0.4199 neg
1 30 According to reception staff the hotel is wor... 0 {'neg': 0.141, 'neu': 0.784, 'pos': 0.074, 'co... -0.7572 neg
2 20 As Black person I was treated to the poorest ... 0 {'neg': 0.109, 'neu': 0.856, 'pos': 0.035, 'co... -0.7184 neg
3 30 Ask member of staff for coffee/tea, otherwise... 0 {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound... 0.0000 pos
4 20 At every place except this hotel we were give... 0 {'neg': 0.065, 'neu': 0.896, 'pos': 0.04, 'com... -0.1779 neg
Error is
Error:ValueError Traceback (most recent call last)
<ipython-input-20-bcc97e606198> in <module>
37
38
---> 39 if df['compound'] > 0:
40 pos_correct += 1
41 pos_count +=1
~\Anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
1553 "The truth value of a {0} is ambiguous. "
1554 "Use a.empty, a.bool(), a.item(), a.any() or a.all().".format(
-> 1555 self.__class__.__name__
1556 )
1557 )
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().