2017-02-15 3 views
0
library(tm) 
library(topicmodels) 
lda_topicmodel <- model_LDA(dtm, k=20, control=list(seed=1234)) 

Я выполнил выделение скрытого распределения Дирихле с помощью функции LDA в R. Теперь у меня есть LDA в формате объекта S4.Как преобразовать вывод LDA в матрицу слов в R?

Как преобразовать его в матрицу слов и матрицу документа в R?

К сожалению, объект типа 'S4' не является подмножеством. Поэтому мне пришлось прибегнуть к копированию подмножества данных для использования.

Topic 1  Topic 2 Topic 3 Topic 4 Topic 5  Topic 6 Topic 7   Topic 8 Topic 9  Topic 10  
[1,] "flooding" "beach" "sets" "flooding" "storm"  "fwy"  "storms"  "flooding" "socal"  "rain"  
[2,] "erosion" "long" "alltime" "just"  "flooding" "due"  "thunderstorms" "via"  "major"  "california" 
[3,] "cause"  "abc7" "rain" "almost" "years"  "closures" "flash"   "public" "throughout" "nearly"  
[4,] "emergency" "day"  "slides" "hardcore" "mudslides" "avoid" "continue"  "asks"  "abc7"  "southern" 
[5,] "highway" "history" "last" "spun"  "snow"  "latest" "possible"  "call"  "streets" "storms" 



Topic 11 Topic 12 Topic 13 Topic 14  Topic 15  Topic 16 Topic 17 Topic 18 Topic 19  Topic 20  
[1,] "abc7" "abc7"  "like" "widespread" "widespread" "across" "rainfall" "flooding" "flooding" "vehicles" 
[2,] "beach" "flooding" "closed" "batters"  "biggest"  "can" "record" "region" "storm"  "several"  
[3,] "long" "stranded" "live" "california" "evacuations" "stay" "breaks" "reported" "california" "getting"  
[4,] "fwy" "county" "raining" "evacuations" "mudslides" "home" "long"  "corona" "causes"  "floodwaters" 
[5,] "710" "san"  "blog" "mudslides" "years"  "wires" "beach" "across" "related" "stranded" 

Картина содержит подмножество слов в каждой теме: LDA word-topic Я желаю, чтобы записать содержимое объекта S4 в CSV-файл, как слово-тема матрицы, как показано на рисунке: Word-Topic Matrix

+0

Рад ответить на этот вопрос. Но не могли бы вы предоставить: минимальный набор данных, какой результат вы получаете и что ожидаете в качестве результата? – lizzie

+0

См. Здесь: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example. Вы должны отредактировать свой оригинальный пост с информацией – lizzie

+0

@lizzie. Я хочу преобразовать его из обычного формата S4 LDA в матрицу и записать в файл csv. Есть идеи? – Sisir

ответ

1

Я использую некоторые данные из R, так как мы не смогли воспроизвести ваши данные.

# load the libraries 
library(topicmodels) 
library(tm) 

# load the data we'll be using 
data("AssociatedPress") 

# estimate a LDA model using the VEM algorithm (default) 
# I'll be using the number of k (number of topics) being 2 
# just as a example 
ap_lda <- LDA(AssociatedPress, 
       k = 2, 
       control = list(seed = 1234)) 

# get all the terms in a dataframe 
as.data.frame(terms(ap_lda, dim(ap_lda)[1])) 

Выход будет:

Topic 1 Topic 2 
1 percent   i 
2 million president 
3  new government 
4 year  people 
5 billion  soviet 
6 last  new 
Смежные вопросы