用weka进行文本分类

时间:2012-03-09 19:16:22

标签: java weka classification document-classification

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

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

当要分类的文本很短时,结果是可以的。但是当文本更长时 超过100个字的结果越来越陌生和陌生。

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

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

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

但是当我使用长度大于100字的文本时,我得到的结果如下:

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

哪个好。

现在我使用Naive Bayes Multinomial对文档进行分类。我读过了 关于它,发现我可以在更长的文本上表现得很奇怪。现在可能是我的问题吗?

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

1 个答案:

答案 0 :(得分:1)

此行为可能有多种因素。如果您的培训和测试文本不属于同一个域,则可能会发生这种情况。此外,我认为为每个类别添加更多文档应该会有所帮助。每个类别中的5个文件看起来很少。如果您没有更多的培训文档或者很难获得更多的培训文档,那么您可以在训练集中综合添加正面和负面实例(详见SMOTE算法)。让我们发布更新。