Я изучаю классификацию документов путем тиражирования учебника. Мы используем кандидатские выступления в качестве учебного материала. Тем не менее я получаю следующую ошибку при репликации учебника:
> tdm <- lapply(candidates, generateTDM, path = pathname)
Error in inherits(x, "Source") : empty directory
Я подтвердил, что сообщение об ошибке не вызвано путем к каталогу. Я предполагаю, что сохранение речей кандидатов в текстовом формате .RTF (в MacBook) вызывает сообщение об ошибке, и .RTF может быть несовместимо с тем, как мой код вызывает кодирование ANSI в переменной generateTDM.
s.cor <- Corpus(DirSource(directory = s.dir, encoding = "ANSI"))
Я попытался кодировка = ASCII с неудачным результатом. Как я могу избавиться от сообщения об ошибке? Вот полный код:
library(tm)
library(plyr)
library(class)
# Initialize the Environment
libs <- c("tm", "plyr", "class")
lapply(libs, require, character.only = TRUE)
# Set Options
options(stringsAsFactors = FALSE)
# Set Parameters
candidates <- c("hitler", "drum")
pathname <- "/Path Name/Is Correct/Help"
# Clean Text
cleanCorpus <- function(corpus) {
corpus.tmp <- tm_map(corpus, removePunctuation)
corpus.tmp <- tm_map(corpus.tmp, strepwhitespace)
corpus.tmp <- tm_map(corpus.tmp, tolower)
corpus.tmp <- tm_map(corpus.tmp, removewords, stopwords("english"))
return(corpus.tmp)
}
# Build Term Document Matrix
generateTDM <- function(cand, path) {
s.dir <- sprintf("%s/%s", path, cand)
s.cor <- Corpus(DirSource(directory = s.dir, encoding = "ANSI"))
s.cor.cl <- cleanCorpus(s.cor)
s.tdm <- TermDocumentMatrix(s.cor.cl)
s.tdm <- removeSparseTerms(s.tdm, 0.7)
result <- list(name = cand, tdm = s.tdm)
}
tdm <- lapply(candidates, generateTDM, path = pathname)