【问题标题】:key error 0 sentiment analysis关键错误0情绪分析
【发布时间】:2018-09-20 19:02:41
【问题描述】:

我正在尝试对一组数据集进行情绪分析,但每次我都会收到此错误: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

【问题讨论】:

    标签: python pandas sentiment-analysis textblob


    【解决方案1】:

    我不确定您列举的内容或​​为什么这是情绪分析的一部分。我就是这样做的……

    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 运行您的列表理解,然后进行解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 2015-01-12
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多