Итак, у меня есть следующий код, где я делаю кластеризацию kmeans после уменьшения размерности.
# Create CountVectorizer
vec = CountVectorizer(token_pattern=r'[a-z-]+',
ngram_range=(1,1), min_df = 2, max_df = .8,
stop_words=ENGLISH_STOP_WORDS)
cv = vec.fit_transform(X)
print('Dimensions: ', cv.shape)
# Create LSA/TruncatedSVD with full dimensions
cv_lsa = TruncatedSVD(n_components=cv.shape[1]-1)
cv_lsa_data = cv_lsa.fit_transform(cv)
# Find dimensions with 80% variance explained
number = np.searchsorted(cv_lsa.explained_variance_ratio_.cumsum(), .8) + 1
print('Dimensions with 80% variance explained: ',number)
# Create LSA/TruncatedSVD with 80% variance explained
cv_lsa80 = TruncatedSVD(n_components=number)
cv_lsa_data80 = cv_lsa80.fit_transform(cv)
# Do Kmeans when k=4
kmean = KMeans(n_clusters=4)
clustered = km.fit(cv_lsa_data80)
Теперь я застрял в том, что делать дальше.Я хочу получить кластеры, идентифицированные объектом kmeans, и получить топ 10 / наиболее часто используемых слов в этих кластерах.Что-то вроде:
Кластер 1:
1-е наиболее распространенное слово - счет
2-е наиболее распространенное слово - счет
Кластер 2:
1-е наиболее распространенное слово - счет
2-е наиболее распространенное слово - количество