Почему стоп-слова не отфильтровываются в корпоративных матричных терминах?

Я строю матрицу терм-документа, используя 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" или слова в начале предложения.

Другие вопросы по тегам