实现贝叶斯分类器(用PHP)

时间:2012-07-16 22:22:14

标签: php nlp classification bayesian

我有一个关于朴素贝叶斯分类器的理论问题。假设我已经使用以下培训数据训练了分类器:

class word  count
-----------------
pos   good  1
      sun   1
neu   tree  1
neg   bad   1
      sad   1

假设我现在将“好太阳大”归类。现在有两种选择:

1)对训练数据进行分类,这仍然是静态的。意味着“好”和“太阳”都来自正面类别,将此字符串分类为正面。分类后,培训表保持不变。因此,所有字符串都根据静态训练数据集进行分类。

2)您对字符串进行分类,然后更新训练数据,如下表所示。因此,下一个字符串将根据比这个更高级的“高级”训练数据进行分类。在(自动)分类结束时,以简单训练集开始的表格将会增大,并且已经扩展了许多单词(以及更新的单词计数)

class word  count
-----------------
pos   good  2
      sun   2
      great 1
neu   tree  1
neg   bad   1
      sad   1

在我的NMB实现中,我使用了第一种方法,但现在我猜测我应该做后者。请赐教: - )

1 个答案:

答案 0 :(得分:1)

您实施的方法确实是构建分类器(而不仅仅是贝叶斯分类器)的流行和可接受的方式。

使用“未标记”的数据,即您没有基本事实的数据来更新分类器,是一种更先进和复杂的技术,有时称为“半监督学习”。 使用这类算法可能或者可能不适合您的特定任务 - 通常是试错的问题。

如果您决定将未标记的数据合并到您的模型中,您应该尝试使用其中一种流行的算法,例如: EM