У меня есть 5 предложений в массиве np.array, и я хочу найти наиболее распространенное число n слов, которые появляются вместе с их относительным количеством. Например, если n было 3, я бы хотел 3 наиболее распространенных слова. В качестве относительного числа я хочу, чтобы количество раз, когда это слово появилось, делилось на общее количество слов. У меня есть пример ниже:
0 oh i am she cool though might off her a brownie lol
1 so trash wouldnt do colors better tweet
2 love monkey brownie as much as a tweet
3 monkey get this tweet around i think
4 saw a brownie to make me some monkey
С помощью предыдущего вопроса мне удается найти наиболее распространенные слова
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
A = np.array(["oh i am she cool though might off her a brownie lol",
"so trash wouldnt do colors better tweet",
"love monkey brownie as much as a tweet",
"monkey get this tweet around i think",
"saw a brownie to make me some monkey" ])
n = 3
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(A)
vocabulary = vectorizer.get_feature_names()
ind = np.argsort(X.toarray().sum(axis=0))[-n:]
top_n_words = [vocabulary[a] for a in ind]
print (top_n_words)
['tweet', 'monkey', 'brownie']
Однако теперь я хочу найти относительный счет? Есть ли простой способ pythoni c сделать это? Например:
print (top_n_words_relative_count)
[3/42, 3/42, 3/42]
Где 42 - общее количество слов.