2015-12-23 13 views
8
.

. Теперь я перехожу через LDA (выделение скрытого распределения Дирихле). Метод моделирования тем, помогающий в извлечении тем из набора документов. Как я понял из приведенной ниже ссылки, это неконтролируемый подход к обучению для категоризации/маркировки каждого из документов с извлеченными темами.Моделирование темы. Назначьте документ с двумя верхними темами в качестве метки категории. Sklearn. Скрытое распределение Дирихле.

Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation

В примере код, указанный в этой ссылке, там есть функция, определенная, чтобы получить верхние слова, связанные с каждым из этой темы были определены.

sklearn.__version__ 

Out [41]: '0,17'

from sklearn.decomposition import LatentDirichletAllocation 


def print_top_words(model, feature_names, n_top_words): 
    for topic_idx, topic in enumerate(model.components_): 
     print("TopiC#%d:" % topic_idx) 
     print(" ".join([feature_names[i] 
         for i in topic.argsort()[:-n_top_words - 1:-1]])) 
    print() 

print("\nTopics in LDA model:") 
tf_feature_names = tf_vectorizer.get_feature_names() 
print_top_words(lda, tf_feature_names, n_top_words) 

Мой вопрос заключается в следующем. Есть ли любой компонент или матрица построенной модели LDA, откуда мы можем получить ассоциацию документа-темы?

Например, мне нужно найти топ 2 темы, связанные с каждым документом как метку документа/Категория для этого документа. Есть ли какой-либо компонент для поиска распределения тем в документе, аналогично model.components_ для нахождения распределения слов в теме.

ответ

9

Вы можете вычислить ассоциацию между документом и тегом, используя функцию преобразования (X) класса LDA.

На примере кода, это было бы:

doc_topic_distrib = lda.transform(tf) 

с LDA насаженным LDA, и ТФ ввода данных, которые вы хотите преобразовать

+0

Спасибо! Работал как шарм – prashanth

+0

Я немного смущен этим решением. Я надеялся получить результат, который показывает темы, связанные с каждым документом. Что-то вроде этого Документ № 1: Тема: [1, 2, 3] – moku

+0

Что вы получаете - это распределение тем для каждого документа. Поэтому каждая строка соответствует документу и каждому столбцу для темы. Чтобы получить результат, который вы хотите, вы можете посмотреть каждую строку и получить индексы столбцов из трех самых больших значений. Это даст вам три наиболее важные темы для каждого документа. – clemgaut

 Смежные вопросы

  • Нет связанных вопросов^_^