0

i removed all special characters that i thought could possibly cause errors. still keep getting this error that i can't figure out:

python3 sentiment.py
Traceback (most recent call last):
  File "sentiment.py", line 14, in <module>
    score = sentiment.polarity_scores(headline)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nltk/sentiment/vader.py", line 360, in polarity_scores
    sentitext = SentiText(text, self.constants.PUNC_LIST,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/nltk/sentiment/vader.py", line 270, in __init__
    text = str(text.encode("utf-8"))
AttributeError: 'float' object has no attribute 'encode'

here's what i have:

import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer
import pandas as pd
from pandas import DataFrame
import numpy as np

sentiment = SentimentIntensityAnalyzer()

testset = pd.read_csv("CNNs.csv")

Result = { 'pos':[] , 'neg':[], 'compound':[], 'neu':[] }

for headline in testset['Title']:
    score = sentiment.polarity_scores(headline)
    Result['pos'].append(score['pos'])
    Result['neu'].append(score['neu'])
    Result['neg'].append(score['neg'])
    Result['compound'].append(score['compound'])

testset['pos'] = pd.DataFrame(Result)['pos']
testset['neu'] = pd.DataFrame(Result)['neu']
testset['neg'] = pd.DataFrame(Result)['neg']
testset['compound'] = pd.DataFrame(Result)['compound']

testset.to_csv('CNN.csv', index=False)

if anyone knows how to get around or fix this, it'd be very very much appreciated. thank you in advance!

example of the .csv file:

Date,Title
04/21/2012,Tao Girls Taobao Chinese Shopping Site To Offer Model Delivery Service
04/21/2012,Giant George The Biggest Dog In The World PHOTOS
04/21/2012,Tiny Hands at Work Before Their Time
04/21/2012,James Van Der Beek I Would Never Do Dancing With The Stars
04/21/2012,Supernatural Recap Bobby Returns in Of Grave Importance
04/21/2012,Nikita Recap Of Wrath Nikita Embraces Her Dark Side
04/21/2012,Celebrity Photos Of The Week Coachella And Baby Bumps PHOTOS
04/21/2012,Hilary Duff Post Baby Body Actress Looks Great One Month After Giving Birth PHOTOS
04/21/2012,Kim Kardashian Without Makeup Kris Jenner Tweets Creepy Photo Of Kim Sleeping PHOTOS
04/22/2012,International Stolen Asset Recovery As a Development Issue   A World Bank Presidents Legacy
04/22/2012,Poetry Helps the Healing After the Fukushima Disaster
04/22/2012,France Election Results 2012 Hollande Sarkozy Advance To Runoff Far Right Gets 20 Percent
04/22/2012,Jennifer Connelly Blonde For New Movie Virginia WATCH
04/22/2012,Cybill Shepherds Polka Dot Tie 1971 A Look Back
04/22/2012,American Idol What They Wore 4/18/12 Top 7 Redux
Jon Yu
  • 1
  • 3
  • It would be great if you put how your testset['Title'] is. – Srikar Manthatti May 25 '20 at 04:41
  • ok, but i'm pretty sure i stripped it completely. this has been driving me crazy because i feel like i've tried everything, and i even had some of my other files go through without issue. – Jon Yu May 25 '20 at 06:23
  • i tried adding these, but still doesn't work: score = sentiment.polarity_scores(word_tokenize(unidecode(headline))) – Jon Yu May 25 '20 at 08:21
  • nevermind, got it. needed to convert titles (headlines) into strings before applying polarity_scores function – Jon Yu May 25 '20 at 11:11

1 Answers1

0

nevermind, got it. needed to convert titles (headlines) into strings before applying polarity_scores function

Jon Yu
  • 1
  • 3