如何使用R对推特数据集分词、移除停用词并转换为tidy text格式
问题背景
我正在对推特数据集开展分析,卡在将数据转换为tidy text并移除停用词的环节,参照网上方法运行时报错,目前已完成的代码如下,数据集为Kaggle平台常见的公开推特数据集,截图如下:
library(readr) library(stringr) library(caret) library(car) library(tidytext) library(stringr) library(tidyr) set.seed(123) twitter_train<-read.csv("/Users/School/Documents/R/Final Training Data Set-twitter.csv") text<-twitter_train$tweet text <- tolower(text) # 移除提及、链接、表情、数字、标点符号等 text <- gsub("@\\w+", "", text) text <- gsub("https?://.+", "", text) text <- gsub("\\d+\\w*\\d*", "", text) text <- gsub("#\\w+", "", text) text <- gsub("[^\x01-\x7F]", "", text) text <- gsub("[[:punct:]]", " ", text) # 移除空格与换行符 text <- gsub("\n", " ", text) text <- gsub("^\\s+", "", text) text <- gsub("\\s+$", "", text) text <- gsub("[ |\t]+", " ", text) # 新建列存储清洗后的推文内容 twitter_train["fix_text"] <- text
解决方法
现有代码的文本预处理部分没有问题,你只需要补充加载dplyr依赖包,按以下步骤执行后续操作即可:
# 补充加载依赖包 library(dplyr) # 转换为tidy text格式,完成分词 tidy_twitter <- twitter_train %>% mutate(tweet_id = row_number()) %>% # 给每条推文增加唯一标识,方便后续聚合统计 unnest_tokens(word, fix_text) # 将清洗后的文本拆分为单个单词,每个单词单独占一行 # 移除停用词 tidy_twitter_clean <- tidy_twitter %>% anti_join(stop_words, by = "word") # 匹配tidytext内置的英文停用词表,移除匹配到的停用词
运行完成后得到的tidy_twitter_clean就是已移除停用词的tidy text格式数据集,可直接用于后续词频统计、情感分析等操作。
内容的提问来源于stack exchange,提问作者Ishh
相关产品推荐
相关产品推荐

