我正在使用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对文档进行分类。我读过了 关于它,发现我可以在更长的文本上表现得很奇怪。现在可能是我的问题吗?
任何人都知道为什么会这样吗?
答案 0 :(得分:1)
此行为可能有多种因素。如果您的培训和测试文本不属于同一个域,则可能会发生这种情况。此外,我认为为每个类别添加更多文档应该会有所帮助。每个类别中的5个文件看起来很少。如果您没有更多的培训文档或者很难获得更多的培训文档,那么您可以在训练集中综合添加正面和负面实例(详见SMOTE算法)。让我们发布更新。