2013-04-29 2 views
3

Я следую example in Scikit learn docs, где CountVectorizer используется для некоторых наборов данных.Найти Самый распространенный термин в Scikit-learn classifier

Вопрос: count_vect.vocabulary_.viewitems() перечислены все термины и их частоты. Как вы сортируете их по количеству событий?

sorted(count_vect.vocabulary_.viewitems()), похоже, не работает.

+0

Привет! возможно, вы хотели бы видеть мой ответ https://stackoverflow.com/a/48490046/1093674 –

ответ

13

vocabulary_.viewitems() на самом деле не перечисляет термины и их частоты, вместо этого это отображение от терминов к их индексам. Частоты (для каждого документа) возвращаются методом fit_transform, который возвращает разреженную (coo) матрицу, где строки представляют собой документы и столбцы слова (с индексами столбцов, сопоставленными с словами через словарь). Вы можете получить общие частоты, например,

matrix = count_vect.fit_transform(doc_list) 
freqs = zip(count_vect.get_feature_names(), matrix.sum(axis=0))  
# sort from largest to smallest 
print sorted(freqs, key=lambda x: -x[1])