Я рассматриваю эту записную книжку о LDA и сходстве документов:
https://www.kaggle.com/ktattan/lda-and-document-similarity
В этой записной книжке вычисляется сходство документов для небольшого набора документов однако я хочу вычислить сходство для всего корпуса.
Вместо использования test_df, как в Блокноте:
new_bow = dictionary.doc2bow(test_df.iloc[random_article_index,7])
new_doc_distribution = np.array([tup[1] for tup in lda.get_document_topics(bow=new_bow)])
Я хочу использовать train_df:
new_bow= [id2word.doc2bow(doc) for doc in train_df['tokenized']]
new_doc_distribution = np.array([[tup[1] for tup in lst] for lst in model.get_document_topics(bow=new_bow)])
Однако это не работает. Я предполагаю, что это невозможно, поскольку списки, используемые для создания массива numpy (в данном случае tup [1]), не имеют одинаковую длину. Поэтому невозможно создать правильный массив, необходимый для вычисления расхождения Дженсена.
Может ли кто-нибудь более опытный, чем я, сказать мне, возможно ли то, что я пытаюсь?