Периодически, когда я запускаю тематический анализ данных и пытаюсь визуализировать с помощью pyLDAvis, я получаю ошибку проверки: «Не все строки (распределения) в doc_topic_dists суммируются в 1».Вот некоторый основной код.Ниже приведен код:
tfidf_vectorizer = TfidfVectorizer(max_df=.95, min_df=1, max_features=None, stop_words='english')
tfidf = tfidf_vectorizer.fit_transform(lines2)
tfidf_feature_names = tfidf_vectorizer.get_feature_names()
nmf = NMF(n_components=3, random_state=None, alpha=.1, l1_ratio=.5, init='nndsvd').fit(tfidf)
panel = pyLDAvis.sklearn.prepare(nmf, tfidf, tfidf_vectorizer, mds='tsne')
Виновным является последнее утверждение в нем (выражение panel =);очевидно, что матрица, созданная с помощью nmf.transform (tfidf), содержит несколько строк, которые являются всеми нулями, поэтому попытка нормализовать строки, центрировав их по столбцу, означает, что возвращает Nan.Похоже, что ни одна комбинация параметров модели не может исправить это (на самом деле, они часто усугубляют проблему, создавая больше строк с помощью Nan).
FWIW, задействованные данные - это текст твитов BBC Health, поэтомуСредняя длина ответа довольно короткая - чуть менее 4000 записей, каждая запись в среднем содержит 4,8 слова.Тем не менее, я убедился, что все ответы с нулевым весом включают слова, которые были включены в модельный словарь, поэтому я не уверен, почему проблема или как ее исправить.
Если нет способа исправить этоРазумно ли было бы в этих случаях просто подставлять в колонке средства?