首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用分类特征和文本进行分类

使用分类特征和文本进行分类
EN

Stack Overflow用户
提问于 2015-09-17 03:01:02
回答 2查看 1.3K关注 0票数 5

我试图把电影分成两个任意的类别。我得到了这部电影的情节概要和它的类型。虽然我使用TfidfVectorizer,以将我的概要转换为功能,我需要使用电影的类型作为一个单独的功能。

我现在只是把这一体裁添加到大纲的文本中,并将其提供给分类器。

问题是这两个特征是不同的。当这些词被转换成一个tfidf矩阵时,我觉得这个体裁应该被不同的对待,而不是任何其他的词。不管怎么说,我能做到吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-17 06:21:32

您应该使用DictVectorizer,对于每一种可能的类别功能(流派),它都会创建新的二进制特性,并且只有当您的电影从该类型开始时,才会在相应的功能上设置1。

代码语言:javascript
复制
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_

在以下方面的成果:

代码语言:javascript
复制
array([[ 1.,  0.,  0.],
       [ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

['genre=action', 'genre=comedy', 'genre=drama']

您还可以使用FeatureUnion连接来自TfidfVectorizer和DictVectorizer的特性。

票数 2
EN

Stack Overflow用户

发布于 2015-09-17 07:14:53

很难找到一种干净的方法来包含分类特性。

将这一体裁附加到大纲中确实是一种继续进行的方式。如果你想给予它更多的重要性,你可以把它附加多次(例如,如果你用的是一袋单词)。

另一种方法是训练两种不同的分类器,一种是用你的文本数据,另一种是你的常规功能。然后,您可以将结果集合起来(例如,以预测概率的平均值为例)。

如果您只有一个分类功能,您只需使用它来推断出一些以前的类。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32621947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档