текст обратно в объект R в пакете tm

Я новичок в пакете tm и буду благодарен за помощь. У меня есть куча сообщений, из которых я извлек ненужные символы и стоп-слова, что я сделал, используя различные функции пакета tm (см. ниже). В конце у меня остается 201 документ, содержащий нужные мне чистые строки, однако это не объект R, а объект VCorpus. Как я могу сшить все эти обработанные документы в один текстовый файл, чтобы он стал одной длинной строкой?

Другими словами, как можно преобразовать объект VCorpus в фрейм данных, список или другой объект R?

corpus <-iconv(posts$message, "latin1", "ASCII", sub="")

corpus <- Corpus(VectorSource(docs))
corpus <- tm_map(corpus, PlainTextDocument)
corpus <- tm_map(corpus, removePunctuation)

corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, tolower)

#remove speical characters for emails

for(j in seq(corpus))   
{   
  corpus[[j]] <- gsub("/", " ", corpus[[j]])   
  corpus[[j]] <- gsub("@", " ", corpus[[j]])   
  corpus[[j]] <- gsub("\\|", " ", corpus[[j]])   
}   


library(SnowballC)

corpus <- tm_map(corpus, stemDocument)  

#remove common English stopwords 
docs <- tm_map(docs, removeWords, stopwords("english"))

#remove words that will be common in our given context
docs <- tm_map(docs, removeWords, c("department", "email", "job", "fresher", "internship"))

#removeUrls
removeURL <- function(x) gsub("http[[:alnum:]]*", "", x)

corpus <- tm_map(corpus, removeURL)

> corpus
<<VCorpus>>
Metadata:  corpus specific: 0, document level (indexed): 0
Content:  documents: 201

person the_darkside    schedule 03.08.2016    source источник
comment
Не редактируйте свой вопрос на совершенно другой вопрос. Вместо этого откройте новый вопрос.   -  person MrFlick    schedule 04.08.2016


Ответы (1)


Корпус представляет собой список простых текстовых документов. Если вы хотите извлечь все содержимое в виде массива символов, вы можете использовать sapply и content для циклического просмотра списка, чтобы извлечь все содержимое.

Протестировано с использованием

# library(tm)
data("crude")
x <- tm_map(crude, stemDocument, lazy = TRUE)
x <- tm_map(x, content_transformer(tolower))

xx <- sapply(x, content)
str(xx)

Используйте lapply вместо sapply, если вам нужен список.

person MrFlick    schedule 03.08.2016
comment
Я получаю следующую ошибку, когда заменяю ваши данные своими: Error in UseMethod("meta", x) : no applicable method for 'meta' applied to an object of class "character" - person the_darkside; 04.08.2016
comment
Затем вы должны предоставить воспроизводимый пример в своем вопросе, чтобы я мог видеть, как ваш корпус отличается от образца, который я создал. Похоже, ваш removeURL должен быть завернут в content_transformer. Я предлагаю вам прочитать документацию для последней функции. - person MrFlick; 04.08.2016