2015-01-30 3 views
0

txt 파일의 모음에있는 korPus 라이브러리에서 두 개의 R 기능을 실행하고 싶습니다. 먼저 tokenize 또는 treetag 이러한 텍스트를 출력 한 다음 출력에 MTLD을 실행하고 단일 문서에 결과를 저장합니다. lapply 또는 for loop을 사용하여이 작업을 수행하려고합니다. 두 명령의 기본 구문은 간단하다 :korPus 텍스트 마이닝 기능을 여러 텍스트 파일에서 실행 R

tokenized_1 <- tokenize("txt", lang="en") 
MLTD(tokenized_1) 

나는 해봤 다음

files <- list.files(path="path/to/dir", pattern="*.txt", full.names=T, recursive=FALSE) 
tokenized<-(lapply(files, tokenize, lang='en')) 

하지만 개별적으로 모든 파일을 통해 가고 싶은 반면, 이것은 하나 개의 파일에 모든 결과를 병합 . 또한 MTLD 함수에 대해 잘못된 클래스를 만듭니다.

나는 shell scripting에서 for loop 익숙 나는 이것이 내가 원하는 것을 할 것입니다하지만

for (i in files){tokenize(i, lang='en')} 

는 아무것도하지 않는다 생각했다. 나는 이것이 매우 순진하고 단순한 접근법이라는 것을 알고 있지만 나는 경험이 많지 않다. R 사용자.

+0

무슨 뜻 이죠, "하나 개의 파일에 모든 결과를 병합?" 당신의'lapply'는 각 파일을 토큰 화 한 결과를 구성 요소로하는 목록을 만들어야합니다. –

+0

잘못된 단어를 선택했습니다. 당신 말이 맞아요, 정말로 '병합'하지는 않지만 모든 출력물을 가진 목록을 만듭니다. 그러나 'MTLD'는이 형식으로 읽을 수 없습니다. 나는 그들을 나누어야 할 것 같아. – user3635159

+0

'lapply (tokenized, MLTD)'만 사용하면됩니다. –

답변

2

사용 lapply

filenames <- list.files(pattern="*.txt") 
text.tagged <- lapply(filenames, function(x) treetag(x, treetagger="manual", lang="en", 
                TT.options=list(path=filepath, preset="en"))) 

text.tagged[1]