在scikit-learn中理解DictVectorizer?

tum*_*eed 2 python nlp machine-learning scikit-learn

我正在探索scikit-learn提供的不同功能的extracccion类.阅读文档我不太了解DictVectorizer可以使用什么?其他问题浮现在脑海中,例如DictVectorizer如何用于文本分类?,即该类如何帮助处理标记的文本数据?任何人可以从除了提供一些小例子例如,我在所有的文档网页阅读就备好?

beh*_*uri 11

说你的特征空间是长度,宽度高度,你有3个观察结果; 即你测量3个物体的长度,宽度和高度:

       length  width  height
obs.1       1      0       2
obs.2       0      1       1
obs.3       3      2       1
Run Code Online (Sandbox Code Playgroud)

另一种显示此方法的方法是使用词典列表:

[{'height': 1, 'length': 0, 'width': 1},   # obs.2
 {'height': 2, 'length': 1, 'width': 0},   # obs.1
 {'height': 1, 'length': 3, 'width': 2}]   # obs.3
Run Code Online (Sandbox Code Playgroud)

DictVectorizer反过来说; 即给定字典列表构建顶部框架:

>>> from sklearn.feature_extraction import DictVectorizer
>>> v = DictVectorizer(sparse=False)
>>> d = [{'height': 1, 'length': 0, 'width': 1},
...      {'height': 2, 'length': 1, 'width': 0},
...      {'height': 1, 'length': 3, 'width': 2}]
>>> v.fit_transform(d)
array([[ 1.,  0.,  1.],   # obs.2
       [ 2.,  1.,  0.],   # obs.1
       [ 1.,  3.,  2.]])  # obs.3
   # height, len., width   
Run Code Online (Sandbox Code Playgroud)

  • 很好的解释。那么,DictVectorizer“简而言之”所做的就是对标记的观察结果进行矢量化,而不管“字符串”标签是什么? (3认同)