2022卡塔尔世界杯预测程序 (2022卡塔尔世界杯战术复盘)

足球是全世界最受欢迎的运动之一。国际足联世界杯是一项每四年举行一次的全球性足球体育赛事,今年在卡塔尔举行。那么,足球爱好者对 2022 年 FIFA 世界杯有何看法?为了找出答案,我将使用 Twitter 上的标签#WorldCup2022 ,进行Twitter 情绪分析。

什么是情绪分析?

情感分析 是 NLP 的一种,旨在根据数据的情感来标记数据,例如积极、消极和中性。这种分析有助于公司了解客户对他们的产品或服务的感受,或确定公众对特定主题的看法趋势。例如,像奥迪这样的公司可以通过Twitter 分享来了解人们是否喜欢其新车的颜色。

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

什么是社交媒体抓取?

随着技术的发展,现在通过社交网站表达各种情绪、感受和想法要容易得多。 社交媒体抓取 是从社交媒体平台提取数据的过程。当我们查看统计数据时,截至 2022 年,Twitter 的每月活跃用户约为 4.5 亿,每秒发布 6,000 条推文。

数据科学家可以使用网络抓取工具从 Twitter 中提取数据。有几个库可以执行此操作,例如 Tweepy 和 Snscrape。

  • Tweepy访问 Twitter API,并抓取你想要的推文。但是,这个库有一些缺点。Twitter API 的标准版本仅允许在时间线中提取 3200 条推文。可以从用户帐户收集的推文数量是有限制的。
  • 另一个可用于从 Twitter 收集数据的库是Snscrape。Snscrape 是一种用于社交网络服务的数据抓取工具,可帮助提取用户个人资料、推文内容、主题标签或搜索等数据。它也不需要使用 Twitter API。借助 Snscrape,您还可以从其他服务(如 Facebook、Instagram、Reddit 和 Telegram)中抓取数据。

免责声明: 本文仅用于教育目的。我们不鼓励任何人抓取网站,尤其是那些可能有针对此类行为的条款和条件的网络资产。

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

如何使用 Snscrape 进行抓取?

在本节中,我们将简要概述 Snscrape,以便在深入研究 Twitter 情绪分析之前了解其结构/理念。首先,我们将使用以下命令安装此库:

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

接下来,让我们从#WorldCup2022 检索比赛第一天发送的 1000 条推文,然后将这些数据转换为 Pandas DataFrame。

# 导入必要的库
import snscrape.modules.twitter as sntwitter 
import pandas as pd 

# 创建一个列表以附加所有推文属性(数据)
 tweets = [] 

# 创建查询
query = '#WorldCup2022 lang:en since:2022-11-20 until:2022-11-21'
 q = sntwitter.TwitterSearchScraper(query) 

# 使用 TwitterSearchScraper 抓取数据并将推文附加到列表中
for i, tweet in  enumerate (q.get_items()): 
    if i> 1000 : 
        break
     tweets.append ([tweet.user.username, tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])

#将数据转换为数据
tweets_df = pd.DataFrame(tweets, columns=["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"])
tweets_df.head()

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

瞧!我们仅使用几个参数就可以使用 Snscrape 轻松地从 Twitter 上抓取推文。Snscrape tweet 对象有很多参数。您可以在下图中看到这些参数。

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

现在是执行 Twitter 情绪分析以了解足球爱好者对 2022 年 FIFA 世界杯的看法的时候了。

Huging Face的 Twitter 情绪分析

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

到目前为止,我们已经介绍了什么是情绪分析和社交媒体抓取,以及如何从 Twitter 收集推文。在本节中,我们将向您介绍如何执行 Twitter 情绪分析。在向您展示此分析之前,让我解释一些您需要了解的 NLP 概念。

迁移学习

要进行情绪分析,您可以从头开始构建模型。在分析大数据时,这种方法需要花费大量时间和金钱。在处理大数据时,我建议使用迁移学习技术。 迁移学习 是一种机器学习方法,其中在一项任务上训练的模型可在另一项相关任务中重复使用。

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

虽然迁移学习已经成为计算机视觉的标准方法,但由于需要大量标记数据,这种方法多年来并不适合 NLP。2017年后,随着基于Transformer的BERT、GPT3等模型的发展,迁移学习技术也被用于NLP。但是,这些模型在使用过程中出现了一些问题,例如:

  • 在对模型架构进行编码时使用不同的框架,例如 PyTorch 或 TensorFlow。
  • 从服务器加载预训练模型。
  • 微调预训练模型。

为了轻松解决这些问题,开发了 Hugging Face 框架。

什么是Hugging Face ?

Hugging Face 是一个数据科学平台和大型开源社区,提供可帮助用户构建、训练和部署机器学习模型的工具。它为各种变压器模型提供了一个标准化接口,使它们适应新的使用任务。您还可以使用此框架与三个主要的深度学习库(PyTorch、TensorFlow 和 JAX)配合使用。

什么是Hugging Face Hub ?

Hugging Face Hub 是一个开源平台,人们可以在其中轻松协作并创建机器学习模型。例如,您可以在此中心找到超过 762 个公开可用的情绪分析模型。

我们将用于此分析的cardiffnl/twitter-roberta-base-sentiment-latest模型是 roBERTa-base 模型。从 2018 年 1 月到 2021 年 12 月,该模型接受了约 1.24 亿条推文的训练。加载该模型的最简单方法是使用管道。管道会自动加载您想要的模型及其预处理类。让我们用管道方法加载我们的模型:

# 安装变压器库
# !pip install transformers 

from transformers import pipeline 
sentiment_analysis = pipeline(model= "cardiffnlp/twitter-roberta-base-sentiment-latest" )

惊人的!我们的模型已准备好进行预测。如果需要,您还可以使用不同的模型进行此分析。

运行 Twitter 情绪分析

让我们将到目前为止所讨论的内容放在一起并运行 Twitter 情绪分析。为此,让我们首先在主题标签#WorldCup2022 中抓取锦标赛第一天的推文,然后使用 for 循环查找每条推文中的情绪。


# 创建一个列表以附加所有推文属性(数据)
 tweet_sa = [] 

# 创建查询
query = '#WorldCup2022 lang:en since:2022-11-20 until:2022-11-21'
 q = sntwitter.TwitterSearchScraper(query) 

# 预处理文本(用户名和链接占位符)
def  preprocess ( text ): 
    new_text = [] 
    for t in text.split( " " ): 
        t = '@user'  if t.startswith( '@' ) and  len (t) > 1  else t 
        t = 'http' 如果t.startswith('http' ) else t 
        new_text.append(t) 
    return  " " .join(new_text) 

#
为i 预测推文的情绪,tweet in  enumerate (q.get_items()): 
    if i> 30000 : 
        break
     content = tweet. content 
    content = preprocess(content) 
    sentiment = sentiment_analysis(content) 
    tweet_sa.append({ “创建日期”:tweet.date,“点赞数”:tweet.likeCount,
                     “推文来源”:tweet.sourceLabel,“推文” : tweet.content, '情绪':情绪[0 ][ '标签' ]})

我们现在有了推文的情绪。为了了解足球爱好者对 2022 年 FIFA 世界杯的看法,我们首先将结果转换为 DataFrame,然后查看此 DataFrame 的前五行。

import pandas as pd 
pd.set_option( 'max_colwidth' , None ) 

# 将数据转换为数据
df = pd.DataFrame(tweet_sa) 
df.head()

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

如您所见,我们有一个 Twitter 数据集,其中包含一些信息,例如日期、点赞数、推文来源、推文和情绪。您可以在此处找到此数据集。让我们继续用饼图可视化所有这些标签。

数据可视化

预测标签后,最好查看这些标签的分布。首先,让我们根据情绪列对数据进行分组,然后看一下情绪:

import matplotlib.pyplot as plt 

# 让我们按情绪计算推文的数量
sentiment_counts = df.groupby([ 'Sentiment' ]).size() 
print (sentiment_counts)
# Output:
Sentiment
negative    5784
neutral     8251
positive    8489
dtype: int64

接下来,我们就按照这些分组来画饼图。

# 画饼图
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= "" )

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

如您所见,正面和中性推文的百分比彼此接近。负面推文的百分比最低。事实证明,球迷对 2022 年 FIFA 世界杯的看法更为积极。

生成词云

现在让我们创建一个词云,看看哪些词在worldcloud库中代表了每种情绪。首先,让我们看一下正面推文的词云。

from wordcloud import WordCloud 
from wordcloud import STOPWORDS 

# 带有正面推文
的词云positive_tweets = df[ 'Tweet' ][df[ "Sentiment" ] == 'positive' ] 
stop_words = [ "https" , "co" , "RT" , " WorldCup2022" ] + list (STOPWORDS) 
positive_wordcloud = WordCloud(width= 800 , height= 400 , background_color= "black" , stopwords = stop_words).生成( str (positive_tweets)) 
plt.figure(figsize=[20 , 10 ]) 
plt.title( "正面推文 - Wordcloud" ) 
plt.imshow(positive_wordcloud, interpolation= "bilinear" ) 
plt.axis( "off" ) 
plt.show()

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

一些与正面推文相关的词包含FIFA、Canada、Black、Brazil、start等。接下来,让我们看一下负面推文的词云。

# 带有负面推文
的词云negative_tweets = df [ 'tweet' ][ df [ "sentiment" ] == 'negative' ] 
stop_words = [ "https" , "co" , "RT" , "WorldCup2022" ] + list(STOPWORDS) 
negative_wordcloud = WordCloud(width=800, height=400, background_color= "black" , stopwords = stop_words).generate(str(negative_tweets)) 
plt.figure(figsize=[20,10]) 
plt.title( "负面推文 -词云”)
plt.imshow(negative_wordcloud,插值= “双线性”) 
plt.axis( "关闭") 
plt.show()

一些与负面推文相关的词:权利、卡塔尔、BBC、开幕式、人类、仪式等。

2022卡塔尔世界杯战术复盘,2022卡塔尔世界杯预测程序

最后的想法

社交媒体是人们自由分享想法的平台。Twitter 是最常用的社交媒体平台之一。这个平台上的数据对企业来说是黄金。公司可以使用这些数据做出更准确的决策。

在这篇文章中,首先展示了如何使用 Snscrape 从 Twitter 中抓取数据。接下来,我解释了如何使用 Hugging Face 中的预训练模型进行情绪分析。我们探索了球迷对 2022 年 FIFA 世界杯的想法。我们建立的模型预测了更多积极的标签。事实证明,球迷对 2022 年 FIFA 世界杯的看法更为积极。

举报/反馈