Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于weka的文本分类_Java_Weka_Classification_Document Classification - Fatal编程技术网

Java 基于weka的文本分类

Java 基于weka的文本分类,java,weka,classification,document-classification,Java,Weka,Classification,Document Classification,我正在用java和Weka库构建一个文本分类器 首先我删除停止字,然后我使用词干分析器(例如将汽车转换为汽车)。 现在我有6个预定义的类别。我训练分类器 每类5份文件。文件的长度相似 当要分类的文本较短时,结果正常。但是当文本较长时 超过100个字的结果越来越陌生 我返回每个类别的概率,如下所示: 概率: [0.0015560238056109177、0.1808919321002592、0.6657404531908249、0.004793498469427115、0.132536478952

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

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

当要分类的文本较短时,结果正常。但是当文本较长时 超过100个字的结果越来越陌生

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

[0.0015560238056109177、0.1808919321002592、0.6657404531908249、0.004793498469427115、0.13253647895234325、0.01448613481534815]

这是一个相当可靠的分类

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

概率:[1.2863123678314889E-5,4.372854775747445E-5,0.9964710903856974,5.539960514402068E-5,0.002993481218084141,4.23437119614616E-4]

这是好事

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


有人知道为什么会发生这种情况吗?

这种行为可能有多种因素。如果您的培训和测试文本不属于同一领域,则可能发生这种情况。此外,我认为为每个类别添加更多文档应该会有一些好处。每个类别中的5个文档似乎都非常少。如果您没有更多的培训文档,或者很难有更多的培训文档,那么您可以在培训集中综合添加积极和消极的实例(详细请参见SMOTE算法)。让我们随时了解最新情况。

培训文档的有效期有多长?如果它们很短,当输入较长时,分类器可能没有足够的信息。大约200-400个单词。但是,正如我所说的,每个类别我只使用5个文档。我认为我应该使用更多的文档来进行更好的分类,但我不认为这会解决问题(当然分类会更准确,但我认为错误仍然存在:/)对于您的>100字测试用例,这是否表明分类文档是P=0.996的3级文档?其他数字如此之小的事实表明,被分类的例子肯定不属于这些类别。第三节课对吗?编辑:实际上它似乎是对的,我认为问题在于培训文件太少了。我将尝试添加更多文档,然后返回报告。