lapply: ошибка в наследовании (x, "Source"): пустой каталог - PullRequest
0 голосов
/ 25 августа 2018

Я изучаю классификацию документов путем тиражирования учебника. Мы используем кандидатские выступления в качестве учебного материала. Тем не менее я получаю следующую ошибку при репликации учебника:

> 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)
...