2017-02-20 51 views
-1

私はtopicmodelコードを実行すると非常に奇妙なエラーが発生します。 基本的に私はユーザーのコメントを持つ.csvファイルを持っています。私は各コメントが1つのドキュメントであるdtmを作成したいと思います。私は8kのコメントのサンプルを取って、その上に次のコードを使用:R:topicmodels、2つの似たような文書、1つのコードは、もう1つはdoesnt、もう1つは

> #LOAD LIBRARYS 
> 
> library(tm) 
> library(SnowballC) 
> library(stringr) 
> library(tictoc) 
> tic() 
> 
> #SET FILE LOCATION 
> file_loc <- "C:/Users/Andreas/Desktop/first8k.csv" 
> 
> #LOAD DOCUMENTS 
> Database <- read.csv(file_loc, header = FALSE) 
> require(tm) 
> 
> #PROCEED 
> Database <- Corpus(DataframeSource(Database)) 
> 
> Database <-tm_map(Database,content_transformer(tolower)) 
> 
> 
> Database <- tm_map(Database, removePunctuation) 
> Database <- tm_map(Database, removeNumbers) 
> Database <- tm_map(Database, removeWords, stopwords("english")) 
> Database <- tm_map(Database, stripWhitespace) 
> 
> 
> myStopwords <- c("some", "individual", "stop","words") 
> Database <- tm_map(Database, removeWords, myStopwords) 
> 
> Database <- tm_map(Database,stemDocument) 
> 
> 
> dtm <- DocumentTermMatrix(Database,   control=list(minDocFreq=2,minWordLength=2)) 
> 
> row_total = apply(dtm, 1, sum) 
> dtm.new = dtm[row_total>0,] 
> 
> removeSparseTerms(dtm, .99) 
> 
>>Outcome:DocumentTermMatrix (documents: 12753, terms: 194) 
>Non-/sparse entries: 66261/2407821 
>Sparsity   : 97% 
>Maximal term length: 11 
>Weighting   : term frequency (tf) 
> 
> #TOPICMODELLING 
> 
> library(topicmodels) 
> 
> 
> 
> burnin <- 100 
> iter <- 500 
> thin <- 100 
> seed <-list(200,5,500,3700,1666) 
> nstart <- 5 
> best <- TRUE 
> 
> 
> k <- 12 
> 
> 
> ldaOut <-LDA(dtm.new,k, method="Gibbs", control=list(nstart=nstart, seed = seed, best=best, burnin = burnin, iter = iter, thin=thin)) 
> 

ので、この1つはうまく動作します。私は8kのコメント、またCSVファイル、同じ形式などの別のサンプルを取る場合は、次のエラーが発生します。

> library(tm) 
> library(SnowballC) 
> library(stringr) 
> library(tictoc) 
> tic() 
> 
> #SET FILE LOCATION 
> file_loc <- "C:/Users/Andreas/Desktop/try8k.csv" 
> 
> #LOAD DOCUMENTS 
> Database <- read.csv(file_loc, header = FALSE) 
> require(tm) 
> 
> #PROCEED 
> Database <- Corpus(DataframeSource(Database)) 
> 
> Database <-tm_map(Database,content_transformer(tolower)) 
> 
> 
> Database <- tm_map(Database, removePunctuation) 
> Database <- tm_map(Database, removeNumbers) 
> Database <- tm_map(Database, removeWords, stopwords("english")) 
> Database <- tm_map(Database, stripWhitespace) 
> 
> 
> myStopwords <- c("some", "individual", "stop","words") 
> Database <- tm_map(Database, removeWords, myStopwords) 
> 
> Database <- tm_map(Database,stemDocument) 
> 
> dtm <- DocumentTermMatrix(Database,control=list(minDocFreq=2,minWordLength=2)) 
> 
> row_total = apply(dtm, 1, sum) 
> dtm.new = dtm[row_total>0,] 
> 
> removeSparseTerms(dtm, .99) 
> 
>>Outcome:DocumentTermMatrix (documents: 9875, terms: 0) 
Non-/sparse entries: 0/0 
Sparsity   : 100% 
Maximal term length: 0 
Weighting   : term frequency (tf) 
> 
> #TOPICMODELLING 
> 
> library(topicmodels) 
> 
> 
> 
> burnin <- 100 
> iter <- 500 
> thin <- 100 
> seed <-list(200,5,500,3700,1666) 
> nstart <- 5 
> best <- TRUE 
> 
> 
> k <- 12 
> 
> 
> ldaOut <-LDA(dtm.new,k, method="Gibbs", control=list(nstart=nstart, seed = seed, best=best, burnin = burnin, iter = iter, thin=thin)) 

>Fehler in obj[[i]][[which.max(sapply(obj[[i]], logLik))]] : 
>attempt to select less than one element in get1index 

を私はそれが9875個の文書が、無条件がすべてであると言うので、DTMで何かがウォーキングされていないと思います。しかし、私は絶対にコードが1つのサンプルでは動作しますが、他のサンプルでは動作しないということを知りません。コードに間違ったことがあった場合や他の間違いが見つかった場合は教えてください。

ありがとうございます!

答えて

-1

言い換えれば、あなたはprobを持っています

+0

ありがとうございました。しかし、私が言ったように、私の2データベースは似ています。したがって、第2のものにはもちろん、用語も含まれています。私が理解していないことは、Rがそれらの用語を除外したり、それらに気付かなかった理由です。その前処理は同じです... – Andres

関連する問題