我使用excludes ="META-INF/**/*"
创建了一个矩阵,看起来像
CountVectorizer
其中每列映射到要素名称
[[1, 2, 1....],
[0, 4, 0,...],
[0, 0, 7....]]
我想做什么
将矩阵行转换为表单
['sweet', 'pretty', 'bad'....]
这基本上是[{'sweet': 1, 'pretty': 2, 'bad': 1 ..} , {'sweet': 0, 'pretty': 4, 'bad': 0 ..} , {'sweet': 0, 'pretty': 0, 'bad': 7 ..}]
inverse_transform
的{{1}}函数会做的,但由于我没有从字典中创建矩阵,我不认为我可以使用它,因为我收到此错误< / p>
&#39; DictVectorizer&#39;对象没有属性&#39; feature_names _&#39;
我如何实现这一目标? NumPy是否提供内置函数将数组转换为字典列表,我可以将每列映射到给定键?
答案 0 :(得分:1)
您正在寻找的功能是get_feature_names
不确定是否有一种内置的方式来实现你想要的东西,但它可以通过一个简单的地图轻松实现
from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer()
#`data` is an array of strings
tdata = cv.fit_transform(data)
ft = cv.get_feature_names()
#create a dictionary with feature names as keys and row elements as values
result = list(map(lambda row:dict(zip(ft,row)),tdata.toarray()))
编辑:内存保存解决方案
import pandas as pd
df = pd.SparseDataFrame(tdata, columns=ft)