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

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

Почему так и что я могу сделать?


person TMOTTM    schedule 19.08.2015    source источник
comment
Как именно вы проверяли свою матрицу терминов-документов? Показанный вами результат не похож на TDM. Было бы лучше, если бы вы предоставили более воспроизводимый пример с пример ввода и код, который вы используете. Включите минимальное количество кода, чтобы продемонстрировать проблему.   -  person MrFlick    schedule 20.08.2015


Ответы (1)


Ваш порядок команд неверен в вашей функции. Если вы посмотрите на список стоп-слов с помощью команды stopwords(), вы увидите, что все стоп-слова в нижнем регистре. Вы должны сначала преобразовать все в нижний регистр, прежде чем удалять стоп-слова, иначе вы сохраните такие слова, как «я», или слова в начале предложения.

person phiver    schedule 20.08.2015