首页 > 解决方案 > 从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包中的标点符号?

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

标签: rdplyrtext-miningtidytext

解决方案


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

例如,只取前 10 个单词tidytext::stop_words$word,您可以:

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"

推荐阅读