【发布时间】:2015-01-07 04:07:26
【问题描述】:
我有一个文本分类任务。到目前为止,我只标记了一个语料库并以二元组格式提取了一些特征(即bigram = [('word', 'word'),...,('word', 'word')]。我想对一些文本进行分类,因为我理解 SVM 算法只能接收向量来进行分类,所以我在 scikit 中使用了一些向量器如下:
bigram = [ [('load', 'superior')
('point', 'medium'), ('color', 'white'),
('the load', 'tower')]]
fh = FeatureHasher(input_type='string')
X = fh.transform(((' '.join(x) for x in sample)
for sample in bigram))
print X
输出是一个稀疏矩阵:
(0, 226456) -1.0
(0, 607603) -1.0
(0, 668514) 1.0
(0, 715910) -1.0
假设我有 2 个类和一个训练集和测试集,我如何使用之前的稀疏矩阵 X 与 SVC 进行分类。
【问题讨论】:
-
每个文档都应该是矩阵中的稀疏向量... libSVM 期望您的数据是稀疏向量...所以您的问题是什么,您实际上尝试过什么吗?
-
我的问题是如何使用稀疏矩阵
X进行分类?...还有什么不清楚的地方?... -
稀疏矩阵 = 稀疏向量的集合。 libSVM 首选输入格式:稀疏向量的集合。跳出“一切都是矩阵”的框框去思考。
-
将矩阵分解为向量。使用这些向量作为分类的特征。向量可以只是矩阵中的列
-
您只需要标签
y,然后您就可以使用SVC().fit(X, y)。不确定问题出在哪里。
标签: machine-learning nlp scikit-learn nltk text-classification