Я не совсем уверен, что вы собираетесь, но похоже, что вы просто пытаетесь выяснить, какой столбец представляет какое слово.Для этого есть удобный аргумент get_feature_names
.
Давайте рассмотрим пример корпуса, представленного в документах :
corpus = [
'This is the first document.',
'This document is the second document.',
'And this is the third one.',
'Is this the first document?' ]
# Put into a dataframe
data = pd.DataFrame(corpus,columns=['description'])
# Take a look:
>>> data
description
0 This is the first document.
1 This document is the second document.
2 And this is the third one.
3 Is this the first document?
# Initialize CountVectorizer (you can put in your arguments, but for the sake of example, I'm keeping it simple):
vec = CountVectorizer()
# Fit it as you had before:
features = vec.fit_transform(data.loc[:,"description"]).todense()
>>> features
matrix([[0, 1, 1, 1, 0, 0, 1, 0, 1],
[0, 2, 0, 1, 0, 1, 1, 0, 1],
[1, 0, 0, 1, 1, 0, 1, 1, 1],
[0, 1, 1, 1, 0, 0, 1, 0, 1]], dtype=int64)
Чтобы увидеть, какой столбец представляет какое слово, используйте get_feature_names
:
>>> vec.get_feature_names()
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
Итак, ваш первый столбец - and
, второй - document
и так далее.Для удобства чтения вы можете вставить это в кадр данных:
>>> pd.DataFrame(features, columns = vec.get_feature_names())
and document first is one second the third this
0 0 1 1 1 0 0 1 0 1
1 0 2 0 1 0 1 1 0 1
2 1 0 0 1 1 0 1 1 1
3 0 1 1 1 0 0 1 0 1