Python 如何向scikit学习分类模型添加除BOW之外的其他功能

Python 如何向scikit学习分类模型添加除BOW之外的其他功能,python,scikit-learn,text-classification,Python,Scikit Learn,Text Classification,我正在尝试建立一个文本分类模型。我的目标是将10000份文件中的每一段分类为是否有“罢工事件”的信息 首先,我遵循基本的预处理步骤,将段落转换为术语文档矩阵(CountVectorizer)。然后将该矩阵反馈给scikit learn提供的模型,如logistic回归和svm 然而,我发现预先训练的LDA模型提供的文档主题信息将有助于段落级文本分类 因此,我还想为每个文本提供主题信息和BOW信息 根据问题的答案,我认为只需在术语文档矩阵的最后一列添加主题号 例如,“text_train”是我的训

我正在尝试建立一个文本分类模型。我的目标是将10000份文件中的每一段分类为是否有“罢工事件”的信息

首先,我遵循基本的预处理步骤,将段落转换为术语文档矩阵(CountVectorizer)。然后将该矩阵反馈给scikit learn提供的模型,如logistic回归和svm

然而,我发现预先训练的LDA模型提供的文档主题信息将有助于段落级文本分类

因此,我还想为每个文本提供主题信息和BOW信息

根据问题的答案,我认为只需在术语文档矩阵的最后一列添加主题号

例如,“text_train”是我的训练语料库(比如40000个段落),“topic”是LDA模型为每个段落提供的主题编号列表

vectorizer=CountVectorizer(ngram\u范围=(1,3))
X=矢量器。拟合变换(文本序列)
X.toarray()#形状(40000643898)
topic=coo_矩阵([topic]).T#形(40000,1)
hstack([X.toarray(),topic]).toarray()#形状(40000643899)
这将返回所需的矩阵,其最后一列包含有关主题的信息

然而,由于主题编号不像术语文档矩阵的元素那样具有基数(或序数)顺序,我担心某些线性机器学习模型可能不适合这项工作


这是真的吗?那我还有别的解决办法吗?

是的,你说得对<代码>主题列不是基本/顺序功能

您可以使用
主题
功能,然后将其附加到
计数向量器
输出

另一个选项(我认为这是更好的方法),您可以将每个主题的概率(您可以使用
lda.transform()
function)作为附加功能