java - 无法上传用于 WEKA 分析的 CSV 文件 - java

标签 java csv machine-learning data-mining weka

我正在做一个大数据分析项目,我卡在了这一点上 我正在尝试上传一个包含数据的 CSV 文件,并想使用 WEKA java API 来执行分析。我希望对文本进行标记化、删除停用词、识别 pos 并过滤名词 我不知道为什么会看到这个错误。对此的解释和解决方案会很棒! 但是我看到下面的错误

Error: 

   Exception in thread "main" java.io.IOException: wrong number of values. Read 21, expected 20, read Token[EOL], line 3
     at weka.core.converters.ConverterUtils.errms(ConverterUtils.java:912)
     at weka.core.converters.CSVLoader.getInstance(CSVLoader.java:819)
     at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:642)

代码:

CSVLoader loader = new CSVLoader();
loader.setSource(new File("C:\\fakepath\\CSVfilesample.csv"));
Instances data = loader.getDataSet();

// save ARFF
ArffSaver saver = new ArffSaver();
saver.setInstances(data);
saver.setFile(new File("C:\\fakepath\\CSVfilesample.arff"));
saver.setDestination(new File("C:\\fakepath\\CSVfilesample.arff"));
saver.writeBatch();

BufferedReader br=null;
br=new BufferedReader(new FileReader("C:\\fakepath\\CSVfilesample.arff"));
Instances train=new Instances(br);
train.setClassIndex(train.numAttributes()-1);
br.close();
NaiveBayes nb=new NaiveBayes();
nb.buildClassifier(train);
Evaluation eval=new Evaluation(train);
eval.crossValidateModel(nb, train, 10, new Random(1));
System.out.println(eval.toSummaryString("\nResults\n=====\n",true));
System.out.println(eval.fMeasure(1)+" "+eval.precision(1)+" "+eval.recall(1));

最佳答案

这个错误一般是加载某个ARFF文件时格式不正确引起的。有几个原因。检查以下几点:

  • 通常使用 ARFF 格式而不是 CSV,因为它比 CSV 文件有某些优势。检查Can I use CSV.?
  • 现在对于另一部分,检查文件的编码是否为UTF-8。如果是,您将必须使用 UTF 8 格式解码文件。引用文献:Text Categorization with WEKA
  • 第三次检查您的 CSV 文件中是否有不兼容的字符。像 %2 之类的东西。检查语法上不正确的结尾。检查是否有任何额外的逗号。

此错误告诉您文件内容有问题。它们不遵循 WEKA 标准格式。解决这个问题,错误就会消失。

希望对您有所帮助。 :)

关于java - 无法上传用于 WEKA 分析的 CSV 文件 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18820264/

相关文章:

java - 可以用Java制作一个内存扫描器吗?

java - 解析字符串日期时间

java - 存储最优解

java - :ajax listener fails within dynamically added h:selectOneMenu

python - 绑定(bind)错误的上下文时,mxnet 不会抛出任何错误

Python:在csv中查找正确的值

python - 在python中将xls转换为csv

php - 使用 laravel 将整个表格导出到 CSV

machine-learning - 在执行语义分割任务时是否应该减去图像均值?为什么或者为什么不?

machine-learning - 如何使用高斯过程进行二元分类?