2016-08-03 7 views
2

나는 tm 패키지를 처음 사용하고 있으며 도움에 감사 할 것입니다. tm 패키지 (아래 참조)의 다양한 기능을 사용하여 불필요한 기호와 불용어를 추출한 게시물이 많이 있습니다. 마지막에는 필요한 깨끗한 문자열이 포함 된 201 개의 문서가 남아 있지만 R 개체가 아니라 VCorpus 개체입니다. 이 처리 된 문서를 모두 하나의 텍스트 파일로 스티치하여 하나의 긴 문자열이되도록해야합니까?tm 패키지의 R 개체로 돌아 오는 텍스트

즉, 어떻게 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 
+0

완전히 다른 질문으로 질문을 수정하지 마십시오. 대신 새 질문을 엽니 다. – MrFlick

답변

1

코퍼스는 일반 텍스트 문서 목록입니다. 당신은 문자 배열과 같은 모든 컨텐츠를 추출 할 경우, 당신은 당신이 원하는 경우 오히려 sapply보다

# 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를 사용하여 모든 콘텐츠 테스트

을 추출하기 위해리스트를 루프 sapplycontent을 사용할 수 있습니다 목록.

+0

내 자신의 데이터로 바꿀 때 다음과 같은 오류가 발생합니다 :'UseMethod ("meta", x)의 오류 : "character"클래스의 객체에 적용된 'meta'에 적용 가능한 메소드가 없습니다. –

+2

그런 다음 귀하의 질문에 재현 가능한 예제 그래서 내가 어떻게 당신의 코퍼스 내가 만든 샘플 형태가 다른 볼 수 있습니다. 'removeURL'가'content_transformer'에 싸여 있어야합니다. 후자의 기능에 대한 설명서를 읽으십시오. – MrFlick