Другой способ использования scikit-learn
-
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=lambda x: [i.strip() for i in x.split(',')], lowercase=False)
counts = vec.fit_transform(df['text']) # actual count, output will be a sparse matrix
dict(zip(vec.get_feature_names(), counts.sum(axis=0).tolist()[0]))
Здесь модуль CountVectorizer
представляет собой реализацию scikit-learn
для моделирования любого пакета слов в обработке естественного языка.
Вы можете использовать объект counts
непосредственно как разреженную матрицу, эффективную для хранения и вычисления, вы также можете выполнять такие операции, как .sum(axis=0)
, которые суммируются по столбцам. После этого просто объедините его с vocabulary
, чтобы получить то, что вы хотите
выход
{'Applied Learning': 3, 'Literacy & Language': 5, 'Math & Science': 4, 'Special
Needs': 1}
Это относится ко всем словам в этом столбце