У меня есть набор твитов, каждый из которых помечен как hate (1) или non hate (0).Я векторизовал данные, используя [3,4] символов n-грамм мешок слов (sklearn's CountVectorizer ), и я хочу извлечь наиболее частые n-граммы для каждыйкласс .Следующий код работает, но он обобщает все данные вместо того, чтобы фокусироваться на самих классах.
bag_of_words = CountVectorizer(
ngram_range =(3,4),
analyzer='char'
)
bag_of_words_mx = bag_of_words.fit_transform(X)
vocab = bag_of_words.vocabulary_
count_values = bag_of_words_mx.toarray().sum(axis=0)
# output n-grams
for ng_count, ng_text in sorted([(count_values[i],k) for k,i in vocab.items()]):
if ng_count > 1:
print(ng_count, ng_text)
Есть ли способ как-то отсортировать словарь по классам?