关键错误0情绪分析

时间:2018-04-11 03:03:35

标签: python pandas sentiment-analysis textblob

我正在尝试对选择的数据集运行情绪分析,但每次我都会收到此错误:KeyError: 0

供参考,这是我正在使用的代码:

OC = df[df["text"].str.contains("Obamacare")]

from textblob import TextBlob
import re

def clean_tweet(tweet):
    return " ".join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)", " ", tweet).split())
def analize_sentiment(tweet):
    analysis = TextBlob(clean_tweet(tweet))
    if analysis.sentiment.polarity > 0:
        return 1
    elif analysis.sentiment.polarity == 0:
        return 0
    else:
        return -1

df["sentiment"] = np.array([ analize_sentiment(tweet) for tweet in df["text"]])
pos_tweets = [tweet for index, tweet in enumerate(OC['text']) if OC['sentiment'][index] > 0]
neu_tweets = [ tweet for index, tweet in enumerate(OC['text']) if OC['sentiment'][index] == 0]
neg_tweets = [ tweet for index, tweet in enumerate(OC['text']) if OC['sentiment'][index] < 0]

在我尝试运行pos_tweetsneu_tweetsneg_tweets后,我不断获得Key Error: 0

1 个答案:

答案 0 :(得分:0)

我不确定你在列举什么,或者为什么这是情绪分析的一部分。我就这样做了......

def clean(tweet):
    return " ".join(re.sub("(@[A-Za-z0-9]+) | ([^0-9A-Za-z\t]) | (w+:\/\/\s+)", " ", tweet).split())

def sentiment_analysis(tweet):
    analysis = TextBlob(clean(tweet))
if analysis.sentiment.polarity > 0:
    return 1
elif analysis.sentiment.polarity == 0:
    return 0
else:
    return -1

df["sentiment"] = np.array([sentiment_analysis(tweet) for tweet in 
df["text"]])

df["OC"] = df.text.str.contains("obamacare", case = False)
df2 = df.loc[df["OC"] == True]
df2.sentiment.value_counts() 

我基本上只是对整个df运行你的列表理解,然后进行解析。