Я работаю над реализацией скрипта Python для кластеризации текстовых данных NMF.В своей работе я использую реализацию Scikit NMF, однако, как я понимаю, в Scikit NMF больше похож на метод классификации, чем на метод кластеризации.
Я разработал простой скрипт, работающий с некоторыми образцами арктик.Я препроцессирую их и выкладываю в качестве ввода для NMF.Согласно работам моего профессора, я получаю несколько кластеров, но я не знаю, как их визуализировать / представить.
У кого-нибудь из вас есть идеи, как сделать это удобным для чтения человеком?:)
Код основного скрипта ниже:
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer
from sklearn.cluster import KMeans
from sklearn.preprocessing import normalize
from sklearn.decomposition import LatentDirichletAllocation, NMF
from sklearn.preprocessing import normalize
import pandas as pd
from preprocess import *
# loading data
raw_text_data = loading_bbc_datasets(5)
text_data = text_preparing(raw_text_data)
tf_vectorizer = TfidfVectorizer()
Y = tf_vectorizer.fit_transform(text_data)
Y_norm = normalize(Y)
nmf = NMF(n_components=5, random_state=1, alpha=.1, l1_ratio=0.5)
A = nmf.fit_transform(Y_norm)
X = nmf.components_
features = tf_vectorizer.get_feature_names()
print(features)
AF = pd.DataFrame(Y_norm.toarray())
WF = pd.DataFrame(A)
HF = pd.DataFrame(X)
AF.to_csv('Y.csv', sep=',', header=features)
WF.to_csv('A.csv', sep=',', header=['C1', 'C2', 'C3', 'C4', 'C5'])
HF.to_csv('X.csv', sep=',', header=features)