【问题标题】:Python - Summarizing Tweets DataFramePython - 总结推文数据框
【发布时间】:2017-11-21 18:01:43
【问题描述】:
  1. 我正在处理 Twitter 情绪分析,挖掘特定关键字的推文。

  2. 我能够存储推文并对其进行处理,生成情绪和主观性等。

  3. 我有一个包含 200 个关键字的列表,我将在其中提取推文并将它们存储起来并一起处理。

  4. 但是,我需要根据我拥有的所有推文进行总结。我已经创建列。

【问题讨论】:

  • 包含两个关键字的推文在表格中是否计数两次?
  • 那么总体情绪是什么?是模式吗? (然后,整体主观性是平均水平吗?)
  • @tmrlvi,整体情绪是按类别(或搜索词)的平均值

标签: python python-3.x pandas numpy sentiment-analysis


【解决方案1】:

由于每条推文都可以有多个关键字,我认为没有一种干净的方法可以做到这一点。我的解决方案是从关键字中创建一个pd.Series,并使用apply 循环遍历关键字。

假设您在上面提供的列表在变量keywords 中,而推文的DataFramedf 中。我还假设 Overall Sentiment Score 是最常见的情绪,Overall Subjectivity 是平均值。

def summarize(data):
    """
    Extract the statistics for a given sub-dataframe
    """
    return pd.Series({
                      "total_tweets" : len(data)
                      "total_retweets" : data.retweet_count.sum()
                      "total_favorites" : data.favorite_count.sum()
                      "total_comments" : data.reply_count.sum()
                      "overall_sentiment_score" : data.sentiment.mode().loc[0]
                      "overall_subjectivity" : data.subjectivity.mean()
                     })

s = pd.Series(keywords)
res = s.apply(lambda word: summarize(df[df.text.str.contains(word)]))

【讨论】:

  • 它没有用。请您使用 CSV 文件检查它,我已在上面的问题中附加,此外,我将所有逗号放在 pd.Series 中,并删除了 .loc[0]。但我得到的是空的,NaN 和 0。
  • 错误 id 指向> "overall_sentiment_score" : data.sentiment.mode().iloc[0], IndexError: 单个位置索引器超出范围
  • 它是因为,对于某些关键字,它的 nan 或空,所以它会抛出该错误。
  • 我稍微改变了你的解决方案,它奏效了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
相关资源
最近更新 更多