从 R 中的字符串列表中删除停用词

Removing Stop words from a list of strings in R

示例数据

输入我的数据代码

  x <-  structure(list(Comments = structure(2:1, .Label = c("I have a lot of home-work to be completed..", 
    "I want to vist my teacher today only!!"), class = "factor"), 
        Comment_ID = c(704, 802)), class = "data.frame", row.names = c(NA, 
    -2L))

我想使用 tidytext::stop_words$word 从上述数据集中删除停用词,并在输出中保留相同的列。除此之外,如何删除 tidytext 包中的标点符号?

注意:我不想将我的数据集更改为语料库

您可以将 tidytext::stop_words$word 中的所有单词合并为一个添加单词边界的正则表达式。但是,tidytext::stop_words$word 的长度为 1149,这对于正则表达式来说可能太大而无法处理,因此您可以删除一些不需要的词并应用它。

例如只取 tidytext::stop_words$word 的前 10 个词,你可以这样做:

gsub(paste0(paste0('\b', tidytext::stop_words$word[1:10], '\b', 
     collapse = "|"), '|[[:punct:]]+'), '', x$Comments)


#[1] "I want to vist my teacher today only"    
#    "I have  lot of homework to be completed"
clean_tweet = removeWords(clean_tweet, stopwords("english"))