Java 朴素贝叶斯分类器可写异常

Java 朴素贝叶斯分类器可写异常,java,mahout,Java,Mahout,我试图使用Mahout中的朴素贝叶斯分类器对一些产品数据进行分类 我使用solr将两个数据集转换为lucene索引,然后使用Mahout split命令创建训练集和保持集。这似乎很有效 现在我已经到了使用trainnb训练Naive Bayes模型的阶段,但是我收到了以下错误: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.mahout.classifier

我试图使用Mahout中的朴素贝叶斯分类器对一些产品数据进行分类

我使用
solr
将两个数据集转换为lucene索引,然后使用Mahout split命令创建训练集和保持集。这似乎很有效

现在我已经到了使用trainnb训练Naive Bayes模型的阶段,但是我收到了以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at org.apache.mahout.classifier.naivebayes.BayesUtils.writeLabelIndex(BayesUtils.java:119)
        at org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob.createLabelIndex(TrainNaiveBayesJob.java:152)
        at org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob.run(TrainNaiveBayesJob.java:92)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob.main(TrainNaiveBayesJob.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
        at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:195)
这是我的命令输入:

$MAHOUT_HOME/bin/./mahout trainnb -i ~/training_output/Amazon_training_output/ -el -o ~/model/Amazon -li ~/labelindex/Amazon -ow -c
在这种情况下,错误意味着什么?我如何解决它


是否可能是我的原始索引造成的?

可能是您的密钥格式不正确?根据代码,我看到键应该是/string/int

第119、131行

你找到过这个问题的答案吗?没有,我最终将自己的解决方案应用到了分类中。我只使用了Mahout的n-grams库,甚至可以由另一个非Mahout库来完成。很抱歉