【 BERTopic应用 02/3】 分析卡塔尔世界杯推特数据

摄影:Fauzan Saari on Unsplash

一、说明

        这是我们对世界杯推特数据分析的第3部分,我们放弃了。我们将对我们的数据进行情绪分析,以了解人们对卡塔尔世界杯的感受。我将在这里介绍的一个功能强大的工具包是Hugging Face,您可以在其中找到各种模型,任务,数据集,它还为刚开始学习机器学习的人提供课程。在这篇文章中,我们将使用一个情绪分析模型和拥抱面孔令牌来完成我们的任务。

二、情绪分析

      情感分析是使用自然语言处理(NLP)来识别,提取和研究情感状态和主观信息。我们可以将这种技术应用于客户评论和调查响应,以对我对产品或服务的意见。

        让我们看几个例子:

  • 我喜欢今天的天气!标记: 正面
  • 天气预报说明天会多云。标签: 中性
  • 雨不会停。野餐计划被推迟了。无赖。。。标签: 负面

        上面的例子清楚地显示了推文的极性,因为文本的结构很简单。以下是一些难以轻易发现情绪的挑战性案例。

  • 我不喜欢下雨天。(否定)
  • 我喜欢在刮风的时候跑步,但不会推荐给我的朋友。(有条件的积极情绪,难以分类)
  • 一杯好咖啡真的需要时间,因为它让我等了30分钟才喝一口。(讽刺)

        现在我们已经介绍了什么是情绪分析以及如何应用这种技术,让我们学习如何在我们的 Twitter 数据上实现这种方法。

遇见“推特-罗伯塔-基地-情绪-最新"

        用于情绪分析的 Twitter-roBERTa-base 是一个 RoBERTa-base 模型,从 124 年 2018 月到 2021 年 <> 月在 ~<>M 条推文上训练,并使用 TweetEval 基准对情绪分析进行了微调。我不会深入探讨 RoBERTa-base 模型的细节,但简单地说,RoBERTa 从预训练过程中删除了下一句预测 (NSP) 任务,并引入了动态掩码,因此掩码标记在训练期间会发生变化。对于更详细的评论,我建议阅读Suleiman Khan的文章和Chandan Durgia的文章。

        要启动此模型,我们可以使用由Hugging Face团队创建的推理API。推理 API 允许您对 NLP、音频和计算机视觉中的任务进行文本文本和评估 80, 000 多个机器学习模型。查看此处以获取详细文档。它很容易使用推理API,您只需这样做即可获得您的拥抱脸令牌(它是免费的)。首先,您应该创建一个拥抱脸帐户并注册。然后,单击您的个人资料并转到设置。

转到访问令牌,然后单击新建令牌。创建新令牌时,系统会要求您选择令牌的角色。
  • 读取:如果您只需要从拥抱人脸中心读取内容(例如,在下载私有模型或进行推理时),请使用此角色。
  • 写入:如果需要创建内容或将内容推送到存储库(例如,在训练模型或修改模型卡时),请使用此令牌。

由作者创建

User access tokens

现在我们有了我们需要的一切,让我们做一些分析!

三、准备我们的数据

        首先,我们需要导入一些依赖项并加载数据。对我们拥有的 10, 000 条推文运行情绪分析需要一些时间。出于演示目的,我们将从池中随机抽取 300 条推文。

import pandas as pd
import pickle
import requests
import randomwith open('world_cup_tweets.pkl', 'rb') as f:data = pickle.load(f)tweets = data.Tweet_processed.to_list()
tweets = random.sample(tweets, 300)

四、运行分析

        然后我们将语言模型和我们的拥抱脸令牌分别传递给变量。

model = "cardiffnlp/twitter-roberta-base-sentiment-latest"
hf_token = "YOUR OWN TOKEN"

        我们定义了一个采用单个参数的分析函数:数据。此函数将我们的 Twitter 数据转换为 JSON 格式,其中包含对传递给函数的输入数据的模型推理结果。

API_URL = "https://api-inference.huggingface.co/models/" + model
headers = {"Authorization": "Bearer %s" % (hf_token)}def analysis(data):payload = dict(inputs=data, options=dict(wait_for_model=True))response = requests.post(API_URL, headers=headers, json=payload)return response.json()

        我们初始化一个空列表,以存储每条推文的情绪分析结果。我们对列表中的每条推文使用循环。然后我们使用 try-except 块技术:

  • 对于可以分析的推文,我们调用我们定义的函数分析,将当前推文作为输入,并从返回的列表中检索第一个结果。此结果应为字典列表,每个词典都包含情绪标签和分数。我们使用内置的 max 函数在情绪结果中查找得分最高的字典。我们将一个新词典附加到tweets_analysis列表中,其中包含推文及其相应的标签,其中包含得分最高的情绪。
  • 对于无法分析的推文,我们使用 except 块,该块捕获 try 块中发生的任何异常并打印错误消息。情绪分析功能可能无法分析某些推文,因此包含此块以处理这些情况。
tweets_analysis = []
for tweet in tweets:try:sentiment_result = analysis(tweet)[0]top_sentiment = max(sentiment_result, key=lambda x: x['score']) # Get the sentiment with the higher scoretweets_analysis.append({'tweet': tweet, 'sentiment': top_sentiment['label']})except Exception as e:print(e)

        然后我们可以将数据加载到数据框中并查看一些初步结果。

# Load the data in a dataframe
df = pd.DataFrame(tweets_analysis)# Show a tweet for each sentiment
print("Positive tweet:")
print(df[df['sentiment'] == 'positive']['tweet'].iloc[0])
print("\nNeutral tweet:")
print(df[df['sentiment'] == 'neutral']['tweet'].iloc[0])
print("\nNegative tweet:")
print(df[df['sentiment'] == 'negative']['tweet'].iloc[0])
# Outputs: (edited by author to remove vulgarity)Positive tweet:
Messi, you finally get this World Cup trophy. Happy ending and you are officially called球王  Neutral tweet:
Nicholas the Dolphin picks 2022 World Cup Final winner     Negative tweet:
Yall XXXX and this XXXX world cup omg who XXXX CARESSS

我们还应该使用 groupby 函数来查看样本中有多少推文是正数或负数。

sentiment_counts = df.groupby(['sentiment']).size()
print(sentiment_counts)# Outputs: 
sentiment
negative     46
neutral      63
positive    166
dtype: int64

既然我们在这里,为什么不使用饼图来可视化结果:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6), dpi=100)
ax = plt.subplot(111)
sentiment_counts.plot.pie(ax=ax, autopct='%1.1f%%', startangle=270, fontsize=12, label="")

由作者创建

似乎大多数人对卡塔尔世界杯感到满意。伟大!

人们在正面和负面推文中谈论什么?我们可以使用词云来显示这些组中的关键字。

# pip install first if you have not installed wordcloud in your environment from wordcloud import WordCloud
from wordcloud import STOPWORDS# Wordcloud with positive tweets
positive_tweets = df[df['sentiment'] == 'positive']['tweet']
stop_words = ["https", "co", "RT"] + list(STOPWORDS)
positive_wordcloud = WordCloud(max_font_size=50, max_words=50, background_color="white", stopwords = stop_words).generate(str(positive_tweets))
plt.figure()
plt.title("Positive Tweets - Wordcloud")
plt.imshow(positive_wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()# Wordcloud with negative tweets
negative_tweets = df[df['sentiment'] == 'negative']['tweet']
stop_words = ["https", "co", "RT"] + list(STOPWORDS)
negative_wordcloud = WordCloud(max_font_size=50, max_words=50, background_color="white", stopwords = stop_words).generate(str(negative_tweets))
plt.figure()
plt.title("Negative Tweets - Wordcloud")
plt.imshow(negative_wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

由作者创建

由作者创建并编辑 

五、总结

        现在我希望你已经学会了如何在拥抱脸中使用推理 API 对推文进行情感分析。这是一个功能强大的工具,高度适用于各个领域。关注我以获取更多想法和技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/37611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高忆管理:策略:短期利空落地 市场有望企稳回升

高忆管理指出&#xff0c;基于A股商场出资环境分析&#xff0c;尤其是当时商场存量博弈为主的布景下&#xff0c;主张重视以下“21”主线轮动&#xff1a;&#xff08;1&#xff09;国产科技代替立异&#xff1a;电子&#xff08;半导体、消费电子&#xff09;、通信&#xff0…

Vue基本知识

一、vue入门 Vue为前端的框架&#xff0c;免除了原生js的DOM操作。简化书写。 基于MVVM的思想&#xff0c;实现数据的双向绑定&#xff0c;使编程的重点放在数据上。 1、引入vue.js文件 2、定义vue核心对象&#xff0c;定义数据模型 3、编写视图 //1、引入vue.js <scr…

关于vue,记录一次修饰符.stop和.once的使用,以及猜想。

内置指令 | Vue.js 在vue的api里&#xff0c;关于v-on有stop和once两个事件标签。 .stop - 调用 event.stopPropagation()。.once - 最多触发一次处理函数。 原有主要代码和页面效果 &#xff08;无stop和once&#xff09;: ...<div class"div" click"di…

激活函数总结(九):Softmax系列激活函数补充(Softmin、Softmax2d、Logsoftmax)

激活函数总结&#xff08;九&#xff09;&#xff1a;Softmax系列激活函数补充 1 引言2 激活函数2.1 Softmin激活函数2.2 Softmax2d激活函数2.3 Logsoftmax激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、S…

React+Typescript清理项目环境

上文 创建一个 ReactTypescript 项目 我们创建出了一个 React配合Ts开发的项目环境 那么 本文 我们先将环境清理感觉 方便后续开发 我们先来聊一下React的一个目录结构 跟我们之前开发的React项目还是有一些区别 public 主要是存放一些静态资源文件 例如 html 图片 icon之类的 …

响应式设计是什么?怎么学习? - 易智编译EaseEditing

响应式设计是一种用于创建能够适应不同设备和屏幕尺寸的网站和应用程序的设计方法。它的目标是确保网站在各种设备上都能提供良好的用户体验&#xff0c;无论是在大屏幕的桌面电脑上还是在小屏幕的移动设备上。 在响应式设计中&#xff0c;页面的布局、字体、图像和其他元素会…

【yml文件的解释】

目录 一、yml的简介二、手写yml文件进行配置三、使用yaml格式导出生成模板四、deployment.yaml文件详解五、Pod yaml文件详解六、Service yaml文件详解 一、yml的简介 Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式&#xff1a;主要用于 api 接口之间消息的传递 Y…

路由器和交换机的区别

交换机和路由器的区别 交换机实现局域网内点对点通信&#xff0c;路由器实现收集发散&#xff0c;相当于一个猎头实现的中介的功能 路由器属于网络层&#xff0c;可以处理TCP/IP协议&#xff0c;通过IP地址寻址&#xff1b;交换机属于中继层&#xff0c;通过MAC地址寻址(列表)…

护眼灯值不值得买?什么护眼灯对眼睛好

想要选好护眼台灯首先我们要知道什么是护眼台灯&#xff0c;大的方向来看&#xff0c;护眼台灯就是可以保护视力的台灯&#xff0c;深入些讲就是具备让灯发出接近自然光特性的光线&#xff0c;同时光线不会伤害人眼而出现造成眼部不适甚至是视力降低的照明设备。 从细节上看就…

【数据结构】二叉树篇|『构造二叉树』刷题

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; 是瑶瑶子啦每日一言&#x1f33c;: 所谓自由&#xff0c;不是随心所欲&#xff0c;而是自我主宰。——康德 目录 一、前言二、刷题1、最大二叉树2、从前序与中序遍历序列构造二…

怎么使用手机远程控制Win10电脑?

可以使用手机远程控制电脑吗&#xff1f; “近期&#xff0c;我将出差一段时间。问题是&#xff0c;我希望能够从很远的地方浏览家里电脑上的一些东西&#xff0c;但我不会一直随身携带笨重的笔记本电脑。我可以手机远程访问Windows电脑吗&#xff1f; ” 当然&am…

SpringBoot请求响应

简单参数 1. 原始方式获取请求参数 Controller方法形参中声明httpServletRequest对象 调用对象的getParameter参数名 RestController public class RequestController {RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){Strin…

Pytorch源码搜索与分析

PyTorch的的代码主要由C10、ATen、torch三大部分组成的。其中&#xff1a; C10 C10&#xff0c;来自于Caffe Tensor Library的缩写。这里存放的都是最基础的Tensor库的代码&#xff0c;可以运行在服务端和移动端。PyTorch目前正在将代码从ATen/core目录下迁移到C10中。C10的代…

12-数据结构-数组、矩阵、广义表

数组、矩阵、广义表 目录 数组、矩阵、广义表 一、数组 二.矩阵 三、广义表 一、数组 这一章节理解基本概念即可。数组要看清其实下标是多少&#xff0c;并且二维数组&#xff0c;存取数据&#xff0c;要先看清楚是按照行存还是按列存&#xff0c;按行则是正常一行一行的去读…

AIF360入门教学

1、AIF360简介 AI Fairness 360 工具包(AIF360)是一个开源软件工具包&#xff0c;可以帮助检测和缓解整个AI应用程序生命周期中机器学习模型中的偏见。在整个机器学习的过程中&#xff0c;偏见可能存在于初始训练数据、创建分类器的算法或分类器所做的预测中。AI Fairness 360…

人工智能在监控系统中的预测与优化:提升效率和响应能力

引言&#xff1a;人工智能的发展给监控系统带来了新的可能性&#xff0c;通过分析历史监控数据和其他相关数据&#xff0c;人工智能可以预测未来可能发生的事件&#xff0c;如交通拥堵、安全隐患等&#xff0c;并帮助优化监控系统的配置和资源分配。这种预测和优化的能力可以提…

2023年国赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

6.2.0在线编辑:GrapeCity Documents for Word (GcWord) Crack

GrapeCity Word 文档 (GcWord) 支持 Office Math 函数以及转换为 MathML GcWord 现在支持在 Word 文档中创建和编辑 Office Math 内容。GcWord 中的 OMath 支持包括完整的 API&#xff0c;可处理科学、数学和通用 Word 文档中广泛使用的数学符号、公式和方程。以下是通过 OMa…

vue自定义指令--动态参数绑定

在企业微信侧边栏应用中&#xff0c;给dialog添加了拖拽功能&#xff0c;但是因为dialog高度超过了页面高度&#xff0c;所以高度100%时拖拽有个bug--自动贴到窗口顶部而且企业侧边栏宽高都有限制&#xff0c;拖拽效果并不理想&#xff0c;所以就想缩小dialog再进行拖拽。 拖拽…

IntelliJ IDEA和Android studio怎么去掉usage和作者提示

截止到目前我已经写了 600多道算法题&#xff0c;其中部分已经整理成了pdf文档&#xff0c;目前总共有1000多页&#xff08;并且还会不断的增加&#xff09;&#xff0c;大家可以免费下载 下载链接&#xff1a;https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ 提取码&#xf…