vectorizer.vocabulary_
делает не частоты возвращаемых слов, но согласно документации:
Отображение терминов в индексы признаков
Чтоэто означает, что каждое из слов в ваших данных сопоставляется с индексом, который хранится в vectorizer.vocabulary_
.
Вот пример, иллюстрирующий происходящее:
from sklearn.feature_extraction.text import CountVectorizer
import pandas as pd
df = pd.DataFrame({"a":["we love music","we love piano"]})
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(df['a'])
print(vectorizer.vocabulary_)
>>> {'we': 3, 'love': 0, 'music': 1, 'piano': 2}
Эта векторизация идентифицирует 4 слова в данных и присваивает индексы от 0 до 3 каждому слову.Теперь вы можете спросить: «Но почему я вообще беспокоюсь об этих показателях?»Потому что, как только векторизация будет завершена, вам необходимо отслеживать порядок слов в векторизованном объекте.Например,
X.toarray()
>>> array([[1, 1, 0, 1],
[1, 0, 1, 1]], dtype=int64)
Используя словарный словарь, вы можете сказать, что первый столбец соответствует «любви», второй - «музыке», третий - «пианино», а четвертый - «мы».".
Обратите внимание, это также соответствует порядку слов в vectorizer.get_feature_names()
vectorizer.get_feature_names()
>>> ['love', 'music', 'piano', 'we']