2016-08-18 7 views
0

저는이 기법이 코퍼스인지 여부에 관계없이 모든 데이터 프레임의 첫 번째 N 문자를 가져 오는 것과 비슷하다고 추측합니다.각 코퍼스의 처음 25 단어를 가져 오는 방법 (R)?

내 시도 : Greetings를 n = 6 코퍼스로 시작

create.greetings <- function(corpus, create_df = FALSE) { 
    for(i in length(Charlotte.corpus.raw)) { 
    Doc1<-Charlotte.corpus.raw[i] 
    Word1<-Doc1[1:25] 
    Greetings[i]<-Word1 
    } 
    return(VCorpus) 
} 

. 널 코퍼스를 만드는 법이나 충분히 큰 문자의 코퍼스를 알아낼 수 없었습니다. 여기에 200 개의 문서 자료 (Charlotte.corpus.raw)가 있습니다. 벡터와 달리 (그리고 확장, 데이터 프레임), 널 코퍼를 생성하는 쉬운 방법이없는 것처럼 보입니다.

문제의 일부는 "문서"의 클래스를 인식하지 못하는 것입니다. 코퍼스 만 인식합니다. 즉, R에 대해, 단일 문서는 n = 1의 코퍼스입니다.

재현 할 샘플 : 그런 다음 몇 가지로 가지고있는 디렉토리에 대한 기능을 실행하는 'TM'과 'dplyr'와 'NLP'패키지뿐만 아니라 일반적인 R 패키지

read.corpus <- function(directory, pattern = "", to.lower = TRUE) { 
corpus <- DirSource(directory = directory, pattern = pattern) %>% 
    VCorpus # Read files and create `VCorpus` object 
if(to.lower == TRUE) corpus <- # Lowercase text 
    tm_map(corpus, 
      content_transformer(tolower)) 
return(corpus) 
} 

가 필요합니다 txt 문서라면, 함께 작업 할 코퍼스가 있습니다. 그런 다음 위에 나온 Charlotte.corpus.raw를 귀하의 코퍼스 이름을 그대로 사용하십시오.

+1

귀하의 "신체"기본적으로 문자열의 단지 벡터, 공백으로 구분 된 단어 각되는 문장/문단? [재현 가능한 예] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example), 구체적으로 작지만 대표적인 샘플 데이터를 제공하십시오. – r2evans

+0

@ r2evans 방금 내가 편집 한 내용은 어떻습니까? 컴퓨터에 이미 저장된 데이터를 사용하는 것이 더 편리하다고 생각합니다. – Antecedent

+0

죄송합니다.이 시스템에'tm'을 설치할 수 없으므로 (패키지'slam'은 R-3.2.5/win에서는 사용할 수 없습니다) 코드로 테스트 할 수 없습니다. 'tm_map'없이 이것을 할 수 없다면, 나는 빠져 있습니다. – r2evans

답변

0

각 문서의 처음 25 개 단어를 포함 인사의 각 행 :

greetings <- c() 
for(i in 1:length(corpus)) { 
    row <- unlist(corpus[i])[1:25] 
    greetings <- rbind(greetings, row) 
} 
+0

'corpus'가 문자 벡터의 목록 일 뿐이라면'lapply (corpus, head, n = 25)'를하기가 더 쉬울까요? (BTW : 빈 벡터로 시작하고 그것에 추가하는 것은 나쁜 습관이고 원하는 크기를 알면 절대적으로 피할 수 있습니다. 작은 수로도 작업 할 수 있지만'for' 루프의 반복마다 R은 다음 행을 가진 인사말 사본을 작성하십시오. 이것은 비쌉니다.) – r2evans

+0

이 게시물은 for 루프로 태그가 붙어 있으므로 물어볼 것입니다. 그러나 확실히 좋은 점. – AidanGawronski

+0

'for' 루프 사용에 대한 요점이 두드러집니다. 한 번에 한 GB의 데이터를 처리 했으므로 확장이 잘되지 않는 코드를 사용하기 시작했습니다 ... 내 눈이 깜박이기 시작합니다 :-) – r2evans