Имея большой столбец текста для панд, я хочу сначала обучить модели LDA всему тексту в этом столбце и определить 50 тем:
doc_clean = df['tweet_tokenized'].tolist()
dictionary = corpora.Dictionary(doc_clean)
doc_term_matrix = [dictionary.doc2bow(doc) for doc in doc_clean]
lda = LdaMulticore(doc_term_matrix, id2word=dictionary, num_topics=50)
Затем я хочу создать 50 столбцов, связанных с каждымтемы, итерации по каждой строке и ставьте вероятность принадлежности к какой-либо из тем к соответствующей теме (ам) и ставьте нули для остальных тем.
Например, если результаты примененияОбученный LDA в первом ряду:
new_doc = dictionary.doc2bow(tweet1)
results = lda(new_doc)
results:
[(1, 0.92), (4,0.42)]
Это означает, что твит1 принадлежит теме 1 с вероятностью 0,92 и теме 4 с вероятностью 0,42, я хочу, чтобы 50 новых столбцов были связаны с темой 1, темой 2,..., тема 50, а затем значения для темы 1 будут 0,92, а для темы 4 будет 0,42 и нули для всех других тем:
topic1 topic2 topic3 topic4 topic5 ... topic50
tweet1 0.92 0 0 0.42 0 ... 0
Есть ли какой-либо питонический способ выполнить последнюю часть (т. е. заполнить50 колонок) быстро?