我有一个文本分类任务。到现在为止我只标记了一个语料库,并以一种二元格式提取了一些特征(即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
我如何使用先前的稀疏矩阵X
来对SVC进行分类?假设我有2个类以及列车和测试集。
答案 0 :(得分:1)
正如其他人所指出的那样,您的矩阵只是语料库中文档的特征向量列表。使用这些向量作为分类功能。你只需要分类标签y然后就可以使用SVC()。fit(X,y)。
但是......你问这个的方式让我觉得你可能没有任何分类标签。在这种情况下,我认为您希望进行聚类而不是分类。您可以使用其中一种聚类算法来执行此操作。我建议sklearn.cluster.MiniBatchKMeans开始。然后,您可以为每个群集输出前5-10个单词,并从中生成标签。