【问题标题】:R remove stopwords from text without tokenizing & transforming data into listR从文本中删除停用词而不将数据标记和转换为列表
【发布时间】:2020-10-14 21:34:21
【问题描述】:

我需要从文本中删除停用词而不将对象标记或更改为列表。使用 rm_stopwords 函数时出现错误。谁能帮帮我?

test<- data.frame(words = c("hello there, everyone", "the most amazing planet"), id = 1:2)
test$words <- rm_stopwords(test$words, tm::stopwords("english"), separate = F, unlist = T)
#Error in `$<-.data.frame`(`*tmp*`, words, value = c("hello", "everyone",  : 
  #replacement has 4 rows, data has 2

#I want something like this, where the stopwords are removed but the rest of the formatting remains intact (e.g. punctuation) 

#                words     id
#1    hello  , everyone     1
#2    amazing planet        2

【问题讨论】:

    标签: r text tidyverse tidyr stop-words


    【解决方案1】:

    试试这种方法,它会产生与您想要的相似的输出。您可以使用tidytext 函数根据停用词制作过滤器,然后将过滤后的值融合到接近您期望的数据帧中。代码如下:

    library(tidytext)
    library(tidyverse)
    #Data
    test<- data.frame(words = c("hello there, everyone", "the most amazing planet"),
                      id = 1:2,stringsAsFactors = F)
    #Unnest
    l1 <- test %>% unnest_tokens(word,words,strip_punct = FALSE)
    #Vector for stop words
    vec<-tm::stopwords("english")
    #Filter
    l1<-l1[!(l1$word %in% vec),]
    #Re aggregate by id
    l2 <- l1 %>% group_by(id) %>% summarise(text=paste0(word,collapse = ' '))
    

    输出:

    # A tibble: 2 x 2
         id text            
      <int> <chr>           
    1     1 hello , everyone
    2     2 amazing planet  
    

    【讨论】:

      【解决方案2】:

      您可以创建一个包含单词边界的所有停用词的单一正则表达式模式,并使用gsub 将它们替换为空白。

      test$words <- gsub(paste0('\\b',tm::stopwords("english"), '\\b', 
                         collapse = '|'), '', test$words)
      test
      #             words id
      #1 hello , everyone  1
      #2   amazing planet  2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-21
        • 2016-01-09
        • 2013-08-26
        • 2014-01-21
        • 1970-01-01
        • 2021-09-16
        • 2015-04-11
        • 1970-01-01
        相关资源
        最近更新 更多