У меня есть группа текстовых файлов из нескольких журналов (назовем их журнал А и журнал Б), на которых я пытаюсь запустить LDA. Я разделяю их каждый на свой корпус, затем присоединяю имена файлов к каждому корпусу, сохраняю журнал происхождения под меткой origin
и, наконец, объединяю два корпуса в myCorpus
:
library(tm); library(topicmodels);
txtfolder <- "~/Path/to/txtfiles/"
source <- DirSource(txtfolder)
A.names <- list.files(path=txtfolder, pattern="A")
B.names <- list.files(path=txtfolder, pattern="B")
A.names <- lapply(X=A.names, FUN=function(i){gsub(".txt", '', x=i)})
B.names <- lapply(X=B.names, FUN=function(i){gsub(".txt", '', x=i)})
A.corpus <- Corpus(A.source, readerControl=list(reader=readPlain))
for (i in 1:length(A.corpus)){
meta(A.corpus[[i]], tag = "origin") <- "A"
}
B.corpus <- Corpus(B.source, readerControl=list(reader=readPlain))
for (i in 1:length(B.corpus)){
meta(B.corpus[[i]], tag = "origin") <- "B"
}
myCorpus <- c(A.corpus, B.corpus) # combining the two corpuses
Отсюда я запускаю LDA на myCorpus
:
myCorpus <- tm_map(myCorpus, PlainTextDocument)
dtm <- DocumentTermMatrix(myCorpus, control = list(minWordLength=3))
n.topics <- 5
lda.model <- LDA(dtm, n.topics)
terms(lda.model,10)
Отсюда я хотел бы создать график, измеряющий долю каждого журнала, связанного с определенной темой, с течением времени (я могу определить время публикации каждого выпуска журналов путем анализа файлов txt и сохранить их в векторе аналогично тому, как я сделал с тегом origin
). Я не уверен, как лучше хранить эту информацию, чтобы я мог использовать дату публикации в качестве горизонтальной оси. Что еще более важно, как я могу создать график, который я упомянул?