当涉及到矢量化短语并将它们放入矩阵形式时,有些事情让我感到困惑。
导入CountVectorizer或TfidfVectorizer时,
.fit&.transform&.fit_transform函数有什么区别?
我知道'.fit'会学习ngrams,分成ngrams。
'.transform'会将它放入短语x ngram矩阵中。
'.fit_transform'是.fit和.transform的组合
如果是这种情况,如果我只是vectorize.transform(短语)而不适合它会发生什么?
我看到本教程设置适合和转换列车数据,但对于测试数据,它只对预测进行“转换”操作。
在此先感谢大家。
强调:
.transform(X)
=将字典特征转换为2D特征矩阵。.fit_transform(X)
=学习功能名称+ .transform(X)
回答你的问题:
只有在使用.transform
学习功能后才能使用.fit
。直接应用.transform
将忽略.fit
中没有遇到的任何特征,因此不会输出任何分类结果。
参考文献:
.transform(X)
将任何dict X
(将feature_name
映射到feature_values
)转换为二维特征矩阵。 2D矩阵是向分类器输入条目的正确方式(根据向量数学)。.fit_transform(X,y=None)
首先,学习输入dict X
中的特征名称列表(学习过程的术语称为fitting
),其次,应用前一段中所述的transform
程序。