Почему стоп-слова не отфильтровываются в корпоративных матричных терминах?
Я строю матрицу терм-документа, используя tm
библиотека.
# Create corpus.
corporize <- function(dir_to_corporize)
{
crp <- Corpus(DirSource(dir_to_corporize, mode="text", encoding="ASCII"),
readerControl=list(reader=readPlain, language="en_EN"))
crp <- tm_map(crp, removeWords, stopwords("english"))
crp <- tm_map(crp, removePunctuation, preserve_intra_word_dashes=F)
crp <- tm_map(crp, removeNumbers)
crp <- tm_map(crp, stripWhitespace)
crp <- tm_map(crp, content_transformer(tolower))
}
Однако, когда я проверяю свою матрицу терминологического документа, я обнаружил, что осталось несколько стоп-слов:
the last time i saw
we need talk about kevin
you make me feel like
Почему это и что я могу сделать?
1 ответ
Ваш порядок команд неверен в вашей функции. Если вы посмотрите на список стоп-слов с помощью команды stopwords()
вы увидите, что все стоп-слова в нижнем регистре. Вы должны сначала преобразовать все в строчные буквы перед удалением стоп-слов, в противном случае вы будете сохранять такие слова, как "I" или слова в начале предложения.