Я использовал код здесь , который является LSTM autoencoder
.
Моя главная цель - извлечь темы из этой модели.Тем не менее, я понятия не имею, какой слой будет разумным для этого.На данный момент я извлек 600
функций (60 sequence length, 10 topics
), что для меня не имеет смысла.
Если я скажу, что хочу 10 topics
, я бы хотел видеть 10 topics with 10 distribution of data
длякаждая тема.
В чем заключается мысль, и как я могу реализовать и продолжить это?
До сих пор я реализовал этот код:
from keras.models import load_model
def get_topics_strength(model, vocab, topn=10):
topics = []
weights = model.get_weights()[0]
for idx in range(model.output_shape[1]):
token_idx = np.argsort(weights[:, idx])[::-1][:topn]
topics.append([(vocab[x], weights[x, idx]) for x in token_idx])
return topics
def revdict(d):
return dict((v, k) for (k, v) in d.items())
ae_lstm = load_model('./Data/simple_ae_to_compare.hdf5')
topics_strength,ll = get_topics_strength(ae_lstm, revdict(word_freqs), topn=10)
Этот код показывает 60060 - это длина последовательности, и я хотел бы иметь 10 тем.
Не могли бы вы указать, какую часть я пропустил.
Заранее спасибо.