Я также столкнулся с этой проблемой при использовании функции removeWords библиотеки tm. Некоторые из других ответов, таких как установка количества ядер на 1, работали для удаления набора английских слов остановки, однако я также хотел удалить пользовательский список первых имен и фамилий из моего корпуса, и эти списки были выше 100 000 слова длинны каждый.
Ни один из других предложений не помог бы решить эту проблему, и выяснилось, что через некоторые пробные ошибки и ошибки, которые removeWords, казалось, имели ограничение в 1000 слов в векторе. Так я написал эту функцию, что решить этот вопрос для меня:
# Let x be a corpus
# Let y be a vector containing words to remove
removeManyWords <- function (x, y) {
n <- ceiling(length(y)/1000)
s <- 1
e <- 1000
for (i in 1:n) {
x <- tm_map(x, content_transformer(removeWords), y[s:e])
s <- s + 1000
e <- e + 1000
}
x
}
Эта функция существенно подсчитывает, сколько слов в векторе слов Я хочу удалить, а затем делит его на 1000 и округляет до ближайшего целое число, п. Затем мы прокручиваем вектор слов, чтобы удалить n раз. С помощью этого метода мне не нужно было использовать lazy = TRUE или изменить количество используемых ядер, как видно из фактического вызова removeWords в этой функции. Надеюсь это поможет!
спасибо, что это было действительно полезно – Jijo