0

我正在使用 Weka 库在 java 中构建一个文本分类器。

首先我删除停用词,然后我使用词干分析器(例如将汽车转换为汽车)。现在我有 6 个预定义的类别。我在每个类别的 5 个文档上训练分类器。文件的长度相似。

当要分类的文本很短时,结果还可以。但是当文本超过 100 字时,结果变得越来越陌生。

我返回每个类别的概率如下:概率:

[0.0015560238056109177, 0.1808919321002592, 0.6657404531908249, 0.004793498469427115, 0.13253647895234325, 0.01448161348153481]

这是一个非常可靠的分类。

但是当我使用超过 100 个单词的文本时,我会得到如下结果:

概率:[1.2863123678314889E-5, 4.3728547754744305E-5, 0.9964710903856974, 5.539960514402068E-5, 0.002993481218084141, 4.23437119E-5]-4

这太好了。

现在我使用朴素贝叶斯多项式对文档进行分类。我已经阅读了它,发现我可以在较长的文本上表现得奇怪。可能是我现在的问题?

任何人都知道为什么会这样?

4

1 回答 1

1

这种行为可能有多种因素。如果您的训练和测试文本不在同一个域中,则可能会发生这种情况。另外,我相信为每个类别添加更多文档应该会有所帮助。每个类别中的 5 个文档似乎非常少。如果你没有更多的训练文档或者很难有更多的训练文档,那么你可以在你的训练集中综合添加正负实例(详见SMOTE算法)。让我们发布更新。

于 2012-03-20T01:28:29.013 回答