Удаление фраз (stopphrases) из корпуса в R?

Я могу легко удалить стоп-слова, используя пакет tm, но есть ли простой способ удалить определенные фразы? Я хотел бы иметь возможность удалить фразу "доброе утро", но не удалить случаи, когда добро не следует за утром.

Пример:

x <- "Good morning. Great question...I'd say we had a good time."
doc.vec <- VectorSource(x)
doc.corpus <- Corpus(doc.vec)
doc.corpus <- tm_map(doc.corpus, stripWhitespace)
doc.corpus <- tm_map(doc.corpus, removePunctuation)
doc.corpus <- tm_map(doc.corpus, content_transformer(tolower))
doc.corpus <- tm_map(doc.corpus, removeWords, c(stopwords("english"), "good"))
dtm <- DocumentTermMatrix(doc.corpus, control=list())
inspect(dtm)

2 ответа

Решение

Просто добавьте "доброе утро" в список слов, которые нужно удалить.

doc.corpus <- tm_map(doc.corpus, removeWords, c(stopwords("english"), "good morning"))

если вы осмотрите DTM, вы увидите, что у вас осталось только 1 "доброе" и нет "утреннего"

Я не очень хорошо понимаю, но, может быть, это просто вопрос gsub

gsub("[Gg]ood.morning", "", x)
[1] ". Great question...I'd say we had a good time."
Другие вопросы по тегам