Удаление слов из предложений - PullRequest
1 голос
/ 09 октября 2019

У меня есть датафрейм, содержащий текст, я пытаюсь удалить из текста определенные слова, которые хранятся в векторе. Пожалуйста, помогите мне достичь этого!

stopwords <- c("today","hot","outside","so","its")
df <- data.frame(a = c("a1", "a2", "a3"), text = c("today the weather looks hot", "its so rainy outside", "today its sunny"))

Ожидаемый результат:

   a                        text          new_text
1 a1 Today the weather looks hot the weather looks
2 a2        its so rainy outside             rainy
3 a3             today its sunny             sunny

1 Ответ

1 голос
/ 09 октября 2019

Вставьте все stopwords вместе и используйте gsub для их удаления.

df$new_text <- trimws(gsub(paste0(stopwords, collapse = "|"), "", df$text))
df
#   a                        text          new_text
#1 a1 today the weather looks hot the weather looks
#2 a2        its so rainy outside             rainy
#3 a3             today its sunny             sunny

Или с помощью str_remove_all

stringr::str_remove_all(df$text, paste0(stopwords, collapse = "|"))

Просто для большей безопасности добавьте словограницы вокруг каждого stopwords, так что "so" из "something" или "some" не заменяется.

df$new_text <- trimws(gsub(paste0("\\b", stopwords, "\\b",
               collapse = "|"), "", df$text))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...