【发布时间】:2012-03-27 05:41:54
【问题描述】:
我正在使用 Weka 库在 java 中构建一个文本分类器。
首先我删除停用词,然后我使用词干分析器(例如将汽车转换为汽车)。 现在我有 6 个预定义的类别。我训练分类器 每个类别 5 个文件。文档长度差不多。
待分类的文本较短时,结果还可以。但是当文字较长时 100多字结果越来越陌生。
我返回每个类别的概率如下: 概率:
[0.0015560238056109177, 0.1808919321002592, 0.6657404531908249, 0.004793498469427115, 0.13253647895234325, 0.0144816134815]4]
这是一个非常可靠的分类。
但是当我使用超过 100 个单词的文本时,我会得到如下结果:
概率:[1.2863123678314889E-5, 4.3728547754744305E-5, 0.9964710903856974, 5.539960514402068E-5, 0.002993481218084141, 4.234371
哪个好。
现在我使用朴素贝叶斯多项式对文档进行分类。我读过了 关于它,我发现我可以在较长的文本上表现得很奇怪。可能是我现在的问题?
有人知道为什么会这样吗?
【问题讨论】:
-
培训文件有多长?如果它们很短,那么当输入较长时,分类器可能没有足够的信息。
-
大约 200-400 字。但是,正如我所说,我每个类别只使用 5 个文档。我认为我应该使用更多文档来更好地分类,但我认为它不会解决问题(当然分类会更准确,但我认为错误仍然存在:/)
-
对于你的 >100 字测试用例,是不是表明分类文档是 P=0.996 的第 3 类?其他数字如此之小这一事实表明被分类的示例绝对不在这些类别中。第 3 类正确吗?
-
编辑:实际上这似乎是正确的,我认为问题在于培训文件很少。我会尝试添加更多文档,然后再报告。
标签: java weka classification document-classification