Air*_*ine 5 classification scikit-learn
我试图将电影分为两个任意类别。我得到了这部电影的情节提要及其类型。当我使用 TfidfVectorizer 将我的概要转换为功能时,我需要使用电影的类型作为单独的功能。
我目前只是将流派附加到概要的文本并将其提供给分类器。
问题是这两个特征是不同的。当这些词被转换为 tfidf 矩阵时,我觉得应该区别对待这个类型,而不是像任何其他词一样。无论如何我可以做到这一点吗?
您应该使用DictVectorizer,对于每个可能的分类特征(流派),它都会创建新的二进制特征,并仅当您的电影来自该流派时才在相应特征上设置 1。
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_
Run Code Online (Sandbox Code Playgroud)
结果是:
array([[ 1., 0., 0.],
[ 0., 0., 1.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
['genre=action', 'genre=comedy', 'genre=drama']
Run Code Online (Sandbox Code Playgroud)
您还可以使用FeatureUnion连接 TfidfVectorizer 和 DictVectorizer 中的特征