Я работаю над моделью LDA, используя Gensim
и spacy
.
В общем:
ldamodel = Lda(doc_term_matrix, num_topics=4, random_state = 100, update_every=3, chunksize = 50, id2word = dictionary, passes=100, alpha='auto')
ldamodel.print_topics(num_topics=4, num_words=6)
Я нахожусь в точке, где у меня есть какой-то вывод, и я хотел бы добавить свой оригинальный Dataframe (из которого пришел текст) с темами и процентный вклад для каждого документа.
Оригинальный df выглядит следующим образом
id group text
234 1 here is some text
837 7 here is some text
494 2 here is some text
223 1 here is some text
Я делаю некоторую стандартную предварительную обработку, включая лемматизацию, удаление стоп-слов и т. д. c. и затем вычислите процентные вклады для каждого документа.
мой вывод выглядит следующим образом
Document_No Dominant_Topic ... Keywords Text
0 0 1.0 ... RT, new, work, amp, year, today, people, look,... 0
1 1 0.0 ... like, time, good, know, day, find, research, a... 1
2 2 1.0 ... RT, new, work, amp, year, today, people, look,... 2
3 3 3.0 ... study, t, change, use, want, Trump, love, stud... 3
4 4 3.0 ... study, t, change, use, want, Trump, love, stud... 4
Я подумал, что мог бы просто объединить 2 dfs вместе, как показано ниже:
results = pd.concat([df, results])
, но когда я это делаю, индексы не совпадают, и у меня остается что-то вроде Франкенштейна, которое выглядит так:
id group text Document_No Dominant_Topic ...
NaN NaN NaN 0 1.0 ...
NaN NaN NaN 1 0.0 ...
494 2 here is some text NaN NaN ...
223 1 here is some text NaN NaN ...
Рад опубликовать более полный код, если это будет полезно, но я Я надеюсь, что кто-то просто знает лучший способ сделать это с той же точки, что и я мог бы печатать темы.