文本分类+朴素贝叶斯+Scikit学习

Text Classification + Naive Bayes + Scikit learn

我将第一次使用朴素贝叶斯进行文本分类。 我在 http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html 上找到的这段代码:

>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB().fit(X_train_tfidf, twenty_train.target)

我想解决一个关于传递给函数 fit() 的参数 X_train_tfidftwenty_train.target 的疑问。

X_train_tfidf是训练集中所有文档的tfidf向量表示。

twenty_train.target 是文档的相应标签,其顺序与它们在 X_train_tfidf 集合中出现的顺序完全相同。

我说得对吗?

简答:是

长答案:对于使用 API 的每个 fit 方法都是如此。给定 矩阵 的文档 X,维度为 [m, n],目标 向量 Y 将具有维度 [n, 1] 和 文档 X[:, j] 与从 0 到 n-1 的每个 j 的目标 Y[j] 匹配。

如果文档和目标不匹配,您的训练过程可能会得到非常糟糕且不合理的结果。