我有一个数据集,它有三个(或可能是两个以上)列A,B和C(C是非结构化文本(即文档))。记录的分类不仅基于文本文档,而且基于列A,B和C的组合。也就是说,相同的文档文本以及A和B的不同组合在培训数据。
C本身的文本分类相对容易,但是我遇到挑战的是三个组合。例如,如果我的训练数据是列A,B和B列的训练。 C用C作为文档,我可以单独使用C作为:
vectorizer = TfidfVectorizer()
vtrain = vectorizer.fit_transform(train["C"])
这会给我一个稀疏的特征矩阵,用于来自矢量化器的特征名称和词汇。但是如何将A和B中的值(总是非零)与C结合使用以进一步用于分类(NB或SVM等)?
我正在考虑使用TruncatedSVD使其对于已接受的n_component密集,例如:
svd = TruncatedSVD(n_components = 100,n_iter = 5,random_state = 42)但问题是如何将来自svd的输出与列A和B的密集矩阵的输出结合起来训练我的模型? / p>