朴素贝叶斯文本分类器 - 确定何时应将文档标记为“未分类”

Posted

技术标签:

【中文标题】朴素贝叶斯文本分类器 - 确定何时应将文档标记为“未分类”【英文标题】:Naive Bayes Text Classifier - determining when a document should be labelled 'unclassified' 【发布时间】:2013-05-05 00:05:42 【问题描述】:

我设计并实现了一个朴素贝叶斯文本分类器(用 Java 编写)。我主要使用它将推文分类为 20 类。为了确定文档属于我使用的类的概率

foreach(class)

   Probability = (P(bag of words occurring for class) * P(class)) / P(bag of words occurring globally)

确定一个词袋是否真的不应该属于任何类别的最佳方法是什么?我知道我可以只发送 P 的最小阈值(类出现的词袋),如果所有类都低于该阈值,则将文档归类为未分类,但是我意识到这可以防止该分类器变得敏感.

是否可以创建一个 Unclassified 类并使用我认为不可分类的文档对其进行训练?

谢谢,

标记

--编辑--

我刚刚想到 - 我可以为 P(全局出现的词袋)*(文档中的词数)设置一个最大阈值。这意味着任何主要由常用词组成的文档(通常是我想要过滤掉的推文),例如。 “是的,我同意你的看法”。会被过滤掉。 - 您对此的想法也将不胜感激。

或者也许我应该找到标准偏差,如果它很低,确定它应该是未分类的?

【问题讨论】:

【参考方案1】:

我看到两个不同的选项,将问题视为一组 20 个二元分类问题。

    您可以计算 P(文档在课堂上)/P(文档不在课堂上)的可能性。一些朴素贝叶斯实现使用这种方法。 假设您有一些评估措施,您可以计算每个类别的阈值并根据交叉验证过程对其进行优化。这是应用文本分类的标准方法。您将使用阈值(每类一个),但它们将基于您的数据。在您的情况下,SCut 或 ScutFBR 将是最佳选择,如 paper 中所述。

问候,

【讨论】:

以上是关于朴素贝叶斯文本分类器 - 确定何时应将文档标记为“未分类”的主要内容,如果未能解决你的问题,请参考以下文章

具有诸如 hasDate、hasLocation、第一个单词等特征的朴素贝叶斯文本分类器

使用 python 的朴素贝叶斯分类器

如何使用火花朴素贝叶斯分类器进行 IDF 文本分类?

基于朴素贝叶斯分类器的情感分析

详解使用EM算法的半监督学习方法应用于朴素贝叶斯文本分类

性能:提高朴素贝叶斯分类器的准确性