📅  最后修改于: 2023-12-03 15:04:45.070000             🧑  作者: Mango
本文介绍如何使用 R 语言分析 Twitter 数据,并对数据进行清洗和分析。我们将使用R包 tidytext
和 rtweet
,以及其他一些常用的 R 包来完成分析。
我们需要先安装和导入一些 R 包。如果您已经安装过这些包,可以跳过此步骤。
# 安装包
install.packages("rtweet")
install.packages("tidyverse")
install.packages("tidytext")
install.packages("quanteda")
install.packages("ggplot2")
# 导入包
library(rtweet)
library(tidyverse)
library(tidytext)
library(quanteda)
library(ggplot2)
在开始分析之前,我们需要获取Twitter数据。我们将使用 rtweet
包来获取数据。要使用此包,您需要先在 Twitter 开发者平台 上注册并创建一个应用程序。注册后,将会为您提供一个 API 密钥和 API 密钥的秘密。将这些信息存储在 .Renviron
文件中,然后重新启动R会话。
# 登录
create_token(app = "My_App")
# 搜索最新的Twitter数据
tweets <- search_twitter("COVID-19", n = 1000)
# 查看数据
head(tweets$text)
获得 Twitter 数据后,我们需要先对数据进行清洗。在这个案例中,我们将使用 tidytext
包中的函数 unnest_tokens()
来分离 Twitter 中的单词和标点符号。
# 展开分词
tidy_tweets <- tweets$text %>%
unnest_tokens(word, text)
# 移除停用词
stopwords <- data.frame(word = stopwords("english"))
tidy_tweets_clean <- tidy_tweets %>%
anti_join(stopwords)
# 查看清理后数据
head(tidy_tweets_clean)
在我们清洗 Twitter 数据后,我们可以分析数据了。首先,我们将创建一个单词计数表来计算每个单词在 Twitter 中出现的次数。
# 创建单词计数表
word_freq <- tidy_tweets_clean %>%
count(word, sort = TRUE)
# 查看前100个单词
head(word_freq, n = 100)
我们还可以使用 ggplot2
包创建单词出现次数的条形图。
# 创建条形图
word_freq %>%
top_n(20) %>%
ggplot(aes(x = word, y = n)) +
geom_col() +
xlab(NULL) +
coord_flip()
接下来,我们将创建单词云,以更清晰地展示哪些单词在 Twitter 中出现最频繁。
# 创建单词云
wordcloud(words = word_freq$word, freq = word_freq$n, max.words = 100, random.order = FALSE)
最后,我们可以对 Twitter 数据进行情感分析,以确定 Twitter 中所使用的情感词汇。我们将使用 quanteda
包中的函数 textmodel_sentiment()
。
# 情感分析
sentiment_score <- tidy_tweets_clean %>%
textmodel_sentiment() %>%
as.data.frame() %>%
rownames_to_column(var = "word")
# 查看前100个情感词
head(sentiment_score, n = 100)
在本文中,我们了解了如何使用 rtweet
包来获取 Twitter 数据,以及如何使用 tidytext
和 quanteda
包来清洗和分析数据。我们还了解了如何使用 ggplot2
和 wordcloud
包来可视化数据。在完成本案例后,您应该已经掌握了 R 语言中的 Twitter 分析基础,能够进行基本的清洗和分析,进一步挖掘数据背后的更多信息。