Scikit learn 使用分类特征和文本进行分类
我试图把电影分为两类。我得到了这部电影的情节大纲和类型。当我使用TFIDFvectorier时,为了将我的概要转换为功能,我需要使用电影的类型作为一个单独的功能 目前,我只是在大纲的文本中添加体裁,并将其输入分类器 问题在于,这两种特征是不同的。当这些词被转换成tfidf矩阵时,我觉得应该以不同的方式对待这一类型,而不仅仅是像其他任何词一样。还有什么我可以做到的吗?您应该使用,对于每个可能的分类功能(流派),它会创建新的二进制功能,并且仅当您的电影来自该流派时,才会在相应的功能上设置1Scikit learn 使用分类特征和文本进行分类,scikit-learn,classification,Scikit Learn,Classification,我试图把电影分为两类。我得到了这部电影的情节大纲和类型。当我使用TFIDFvectorier时,为了将我的概要转换为功能,我需要使用电影的类型作为一个单独的功能 目前,我只是在大纲的文本中添加体裁,并将其输入分类器 问题在于,这两种特征是不同的。当这些词被转换成tfidf矩阵时,我觉得应该以不同的方式对待这一类型,而不仅仅是像其他任何词一样。还有什么我可以做到的吗?您应该使用,对于每个可能的分类功能(流派),它会创建新的二进制功能,并且仅当您的电影来自该流派时,才会在相应的功能上设置1 from
from sklearn.feature_extraction import DictVectorizer
v = DictVectorizer(sparse=False)
D = [{'genre':'action'}, {'genre':'drama'}, {'genre':'comedy'}, {'genre':'drama'}]
v.fit_transform(D)
v.feature_names_
结果:
array([[ 1., 0., 0.],
[ 0., 0., 1.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
['genre=action', 'genre=comedy', 'genre=drama']
您还可以使用将TfidfVectorizer和DictVectorizer中的功能连接起来很难找到一种干净的方法来包含分类功能 将体裁附加到大纲中确实是一种前进的方式。如果你想赋予它更多的重要性,你可以多次附加它(例如,如果你使用的是单词袋) 另一种技术是训练两个不同的分类器,一个使用文本数据,另一个使用常规特征。然后,您可以对结果进行集成(以预测概率的平均值为例)。
如果你只有一个分类特征,你可以用它来推断最后一个类的一些先验知识 希望这有帮助