以下是使系统学习和分类输入数据的分步过程的示例。
它为给定的5个数据集域正确分类。此外,它还对停用词进行分类。
e.g
输入:docs_new = ['God is love', 'what is where']
输出:
'God is love' => soc.religion.christian
'what is where' => soc.religion.christian
此处what is where
不应归类为仅包含停用词。 scikit如何在这种情况下学习函数?
答案 0 :(得分:1)
根据定义,分类器总是预测它在训练阶段看到的一个类。我不知道你做了什么来制作分类器,但很可能它只是预测了没有有趣特征的任何样本的大多数类;什么天真的贝叶斯,线性SVM和其他典型的文本分类器。
答案 1 :(得分:1)
我不确定您使用的分类器。但是,我们假设您使用朴素贝叶斯分类器。
在这种情况下,样本被标记为在给定特定单词模式的情况下后验概率最大的类。
并且后验概率计算为
后验=似然x先前
请注意,证据项已被删除,因为它是常数)。此外,还有一个加性平滑处理,以避免可能性为零的情况 无论如何,如果您的输入文本中只有停用词,则所有类别的可能性都是不变的,并且后验概率完全取决于您的先验概率。因此,基本上发生的是Naive Bayes分类器(如果从训练数据估计先验)将分配最常出现在训练数据中的类标签。
答案 2 :(得分:0)
标准文本分类使用TfidfVectorizer将文本转换为标记,并将特征向量转换为分类器的输入。 init_words =' english'矢量化器不会为句子产生任何特征'什么是'。 使用内置英语停用词列表,您可以在此处检查停用词与每个输入令牌词汇匹配:https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/feature_extraction/stop_words.py