Python 关键错误0情绪分析
我试图对选定的数据集运行情绪分析,但每次都会出现以下错误:Python 关键错误0情绪分析,python,pandas,sentiment-analysis,textblob,Python,Pandas,Sentiment Analysis,Textblob,我试图对选定的数据集运行情绪分析,但每次都会出现以下错误:keyror: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+)", " ",
keyror: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]
OC=df[df[“text”].str.contains(“奥巴马医改”)]
从textblob导入textblob
进口稀土
def清洁_tweet(tweet):
返回“.join(re.sub”(@[A-Za-z0-9]+)|([^0-9A-Za-z\t])|”(\w+:\/\/\S+),”,tweet.split())
def分析情绪(推特):
分析=TextBlob(干净的tweet(tweet))
如果analysis.touction.polarity>0:
返回1
elif analysis.touction.polarity==0:
返回0
其他:
返回-1
df[“情绪”]=np.array([analize_情绪(tweet)用于df[“text”]]中的tweet)
pos_tweets=[tweet for index,tweet in enumerate(OC['text']),如果OC['emotation'][index]>0]
neu_tweets=[tweet for index,tweet in enumerate(OC['text'])如果OC['emotation'][index]==0]
neg_tweets=[tweet for index,tweet in enumerate(OC['text'])如果OC['Mootation'][index]<0]
在我尝试运行
pos_tweets
,neu_tweets
,neg_tweets
之后,我一直得到关键错误: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运行您的列表理解,然后解析