2016-06-30 1 views
1

R의 STM 패키지에 문제가 있습니다. Quantum에 코퍼스를 구축했으며이를 STM 형식으로 변환하려고합니다. 독립된 CSV 파일로 메타 데이터를 저장 했으므로 텍스트 문서를 메타 데이터와 병합하는 코드가 필요합니다. readCorpus()하고 "변환은() 함수를 자동으로 코퍼스에 메타 데이터 정보를 추가하지STM에 메타 데이터를 추가 R

이는 Quanteda의 모습 :.

EUdocvars <- read.csv("EU_metadata.csv", stringsAsFactors = FALSE) 

EUdocvars$Period <- as.factor(EUdocvars$Period) 
EUdocvars$Country <-as.factor(EUdocvars$Country) 
EUdocvars$Region <- as.factor(EUdocvars$Region) 

EUCorpus <- corpus(textfile(file='PROJECT/*.txt'), encodingFrom = "UTF-8-BOM") 
docvars(EUCorpus) <- EUdocvars 

EUDfm <- dfm(EUCorpus) 

이 같은 일을 할 수있는 방법이 있나요 STM 패키지를 사용

답변

0

stm 개체 (목록) 차원 number of documents x number of covariates의 dataframe 소요 $meta라는 요소를 가지고 문제에 대한 그래서?.

EUCorpus$meta <- EUdocvars 
+0

안녕하세요, 답변 해 주셔서 감사합니다. 나는 아직도 문제가있다. 패키지를 사용하여 STM을 수행 할 준비가 된 데이터와 메타 데이터를 사용하여 코퍼스를 만드는 방법에 대해 설명해주십시오. 감사합니다. – Ricardo

2

https://github.com/kbenoit/quanteda/issues/209을 주소 지정 한 후이 기능이 지원되었습니다 (v0.99).

EUstm <- convert(EUdfm, to = "stm", docvars = docvars(EUCorpus)) 

을 그리고 EUstm는 STM 모델을 피팅에 필요한 meta 등의 모든 요소가 있습니다

그래서이 작동합니다.

+0

고맙습니다. 나는 한 가지 더 질문이있다. 거기에서 STM 모델을 만드는 가장 좋은 방법은 무엇입니까? 나는 출력물이 이제는 TDM이기 때문에 이것을 묻습니다. 어떻게 이것을 "stm (documents, vocab, K, prevalence)"로 읽을 수있는 형식으로 추출해야합니까? – Ricardo

+0

'stm (EUdfm $ documents, EUdfm $ vocab, K, EUdfm $ 유행)' –

+0

다시 응답 해 주셔서 감사합니다! 나는 그것을 시도했지만 그것까지 올랐다. stm (EUstm $ documents, EUstm $ vocab, K, EUstm $ 유행)의 오류 : Word 인덱스가 양의 정수가 아니다. – Ricardo

관련 문제