Sto facendo argomento modellazione utilizzando il pacchetto topicmodels in R. Io sono la creazione di un oggetto Corpus, fare un po 'di pre-elaborazione di base, e quindi la creazione di un DocumentTermMatrix:Rimuovere i documenti vuoti da DocumentTermMatrix in mododelle R?
corpus <- Corpus(VectorSource(vec), readerControl=list(language="en"))
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removeNumbers)
...snip removing several custom lists of stopwords...
corpus <- tm_map(corpus, stemDocument)
dtm <- DocumentTermMatrix(corpus, control=list(minDocFreq=2, minWordLength=2))
E poi eseguire LDA:
LDA(dtm, 30)
questa chiamata finale per LDA() restituisce l'errore
"Each row of the input matrix needs to contain at least one non-zero entry".
presumo che ciò significa che c'è almeno un documento t cappello non ha termini in esso dopo la pre-elaborazione. C'è un modo semplice per rimuovere documenti che non contengono termini da DocumentTermMatrix?
Ho esaminato la documentazione per il pacchetto topicmodels e ho trovato la funzione removeSparseTerms, che rimuove i termini che non compaiono in nessun documento, ma non esiste un analogo per la rimozione dei documenti.
Quando si ispeziona (corpus), si vede qualche documento emty? e LDA è in quale pacchetto? – agstudy
Sto usando la funzione LDA dal pacchetto topicmodels. Ho circa 51.000 documenti, quindi non posso controllare manualmente con controlli. Inoltre, è possibile che alcuni termini vengano rimossi dai parametri minDocFreq = 2, minWordLength = 2, quindi quello che voglio veramente controllare è DocumentTermMatrix. C'è un altro modo per trovare i documenti vuoti? –