Этот вопрос касается двух разных объектов в теме библиотеки моделирования Gensim для Python.Gensim имеет функцию "diff ()", определенную для объектов типа "LdaModel".Его можно использовать для сравнения тематических моделей между двумя моделями LDA, например:
lda_model_1 = LdaModel() # some initialization, training etc omitted
lda_model_2 = LdaModel() # some initialization, training etc omitted
lda_model_1.diff(lda_model_2)
, где diff () имеет следующую строку документации:
Signature: model_lda.diff(other, distance='kullback_leibler', num_words=100, n_ann_terms=10, diagonal=False, annotation=True, normed=True)
Docstring:
Calculate the difference in topic distributions between two models: `self` and `other`.
Теперь я обучил LDAмодель типа "LdaModel" и модель "Авторская тема" типа "AuthorTopicModel".Последний наследует от "LdaModel".
Теперь при выполнении следующего выдается ошибка:
lda_model = LdaModel() # excluding some init code here
at_model = AuthorTopicModel # excluding some init code here
at_model.diff(lda_model)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-74-cce096e96139> in <module>()
----> 1 at_model.diff(lda_model)
/home/xxx/lib/python3.5/site-packages/gensim/models/ldamodel.py in diff(self, other, distance, num_words, n_ann_terms, diagonal, annotation, normed)
1428
1429 if not isinstance(other, self.__class__):
-> 1430 raise ValueError("The parameter `other` must be of type `{}`".format(self.__name__))
1431
1432 distance_func = distances[distance]
ValueError: The parameter `other` must be of type `LdaModel`
... в то время как она работает наоборот:
lda_model.diff(at_model)
Теперь мой вопросдействительно ли Gensim производит значимый вывод для "diff" между LDA и авторскими моделями тем?Я не знаю о внутренних представлениях этих моделей, меня интересует, приводит ли приведенный выше код к значимым различиям или нет, обеспечивая правильное распределение между темами между двумя типами моделей.