2017-03-05 8 views
1

저는 유니버스와 바이 그램이있는 코퍼스에 대해 2 개의 문서 - 용어 행렬을 만들려고합니다. 그러나 bigram 행렬은 현재 unigram 행렬과 동일하므로 왜 그럴지 잘 모르겠습니다.R-bigram 토큰 화 도구의 문서 용어 행렬이 작동하지 않습니다.

코드 :

docs<-Corpus(DirSource("data", recursive=TRUE)) 

# Get the document term matrices 
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2)) 
dtm_unigram <- DocumentTermMatrix(docs, control = list(tokenize="words", 
    removePunctuation = TRUE, 
    stopwords = stopwords("english"), 
    stemming = TRUE)) 
dtm_bigram <- DocumentTermMatrix(docs, control = list(tokenize = BigramTokenizer, 
    removePunctuation = TRUE, 
    stopwords = stopwords("english"), 
    stemming = TRUE)) 

inspect(dtm_unigram) 
inspect(dtm_bigram) 

는 I는 N- 그램하여 시도의 (X, N = 2) N- 그램의 토크 나이저 등의 패키지이지만 그 중 하나가 작동되지 않는 발. bigram 토큰 화는 어떻게 수정합니까?

+0

나는 또한이 문제를 가지고 있으므로 답변을 찾았다면 알려주십시오. –

+0

조금 늦게 회신 해 주셔서 죄송합니다. -하지만 코퍼스 대신 VCorpus를 사용하여이 작업을 처리했습니다. – filaments

답변

0

tokenizer 옵션이 Corpus (SimpleCorpus)와 작동하지 않는 것 같습니다. 대신 VCorpus를 사용하여 문제를 해결했습니다.

+0

코퍼스보다'VCorpus '가 왜 필요한가요? 또 다른 관련 SO 문제 [여기] (https://stackoverflow.com/questions/42757183/creating-n-grams-with-tm-rweka-works-with-vcorpus-but-not-corpus)가 있지만, 만족스러운 설명 인 것 같다. – hongsy