scikit learn对停止语进行分类



下面是一个例子,其中有一个循序渐进的过程来让系统学习和分类输入数据。

它对给定的5个数据集域进行了正确的分类。此外,它还对停止语进行了分类。

例如

输入:docs_new = ['God is love', 'what is where']

输出:

'God is love' => soc.religion.christian
'what is where' => soc.religion.christian

这里what is where不应该被分类,因为它只包含停止语。scikit如何在这种情况下学习功能?

我不确定您使用的是什么分类器。但让我们假设您使用的是朴素贝叶斯分类器。

在这种情况下,样本被标记为给定特定单词模式的后验概率最大的类别
后验概率计算为

后验=似然性x先验

请注意,证据项已删除,因为它是常量)。此外,还有一个加法平滑,以避免出现可能性为零的情况
无论如何,如果你的输入文本中只有停止词,那么所有类的可能性都是恒定的,后验概率完全由你的先验概率决定。因此,基本上发生的是,Naive Bayes分类器(如果先验是从训练数据中估计的)将分配训练数据中最常见的类标签。

根据定义,分类器总是预测它在训练阶段看到的类之一。我不知道你做了什么来生成分类器,但很可能它只是预测任何没有有趣特征的样本的大多数类;这就是朴素贝叶斯、线性SVM和其他典型的文本分类器所做的。

标准文本分类使用TfidfVectorizer将文本转换为标记和特征向量,作为分类器的输入。init参数之一是stop_words,如果stop_words="english",矢量器将不会为句子"what is where"生成任何特征。使用内置的英语停止词列表,停止词在词汇上与每个输入标记相匹配,您可以在这里检查:https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/feature_extraction/stop_words.py

相关内容

  • 没有找到相关文章

最新更新