Scikit朴素贝叶斯文本分类

时间:2013-12-07 02:57:22

标签: numpy scikit-learn scikits

我正在尝试使用scikit进行Naive Basyes分类。我有几个问题(我也是scikit的新手)

1)Scikit算法希望输入为numpy数组并标记为数组。在文本分类的情况下,我应该通过维护词汇中的单词哈希值和与之关联的唯一ID来将我的每个单词用数字(id)映射?这是scikit的标准做法吗?

2)如果将相同的文本分配给多个课程,我该怎么办?一种显而易见的方法是为每个相关标签复制每个训练示例一。有更好的代表性吗?

3)同样对于测试数据,我将如何获得多个与测试相关的类?

我正在使用http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.MultinomialNB.html 作为我的基地。

1 个答案:

答案 0 :(得分:1)

1)是的。使用feature_extraction模块中的DictVectorizer或HashVectorizer。 2)这是一个多标签问题。也许使用multi_class模块中的OneVsRestClassifier。它将为每个班级训练一个单独的分类器。 3)每个calss使用一个多标签分类器/一个分类器就可以做到这一点。

看看http://scikit-learn.org/dev/auto_examples/grid_search_text_feature_extraction.htmlhttp://scikit-learn.org/dev/auto_examples/plot_multilabel.html