在Java代码中使用Weka CSVLoader时出现Java IO异常

标签 java csv io weka

我正在尝试使用 Java 代码自动执行一些 Weka 分类。当我尝试读取 csv 文件时出现以下错误:

java.io.IOException: wrong number of values. Read 98, expected 97, read Token[EOL], line 3 at weka.core.converters.ConverterUtils.errms(ConverterUtils.java:912) at weka.core.converters.CSVLoader.getInstance(CSVLoader.java:747) at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:570) at Classifier_Search.readFile(Classifier_Search.java:18) at Classifier_Search.main(Classifier_Search.java:178) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:271)

当我尝试通过 Weka GUI 提供 csv 文件时,出现同样的错误。据我所知,该 csv 文件与我在 Weka 中成功使用的其他 csv 文件没有什么不同。有什么想法可能导致此错误吗?

为此,我无法在 OldNabble 上找到满意的答案 - 我尝试了我设法找到的一个建议,但没有成功。一个建议是将条目封装在双引号中 - 这没有改变任何内容。

为了清楚起见(并且因为我不知道如何上传内容),csv 文件如下所示:

C1V1、C2V1、C3V1,...等级,

4000.5、3890.6、2900.7、...N、

...

...

每行有 97 个条目。在另一个版本中,我在字符串和字符周围使用双引号(在第一行和最后一列),正如我之前所说,这没有帮助。

谢谢!

最佳答案

我在使用weka工具时也遇到了同样的问题。我能够像这样解决它。

enter image description here

当你得到这种类型的异常时。找到提示行上方的行。例如:在我的例子中,系统提示我异常是由于 80542 行中的某些故障造成的,因此我需要检查 80541 行。然后您可以看到该行中多了一个逗号或双引号。删除多余的逗号或双引号并保存文件。再次运行它。然后就可以正常运行了,没有任何异常。

关于在Java代码中使用Weka CSVLoader时出现Java IO异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388848/

相关文章:

java - 错误: "the method add(Component) in the type Container is not applicable for the arguments (Square)

java - 在 Tomcat 6 中自动化 Quartz 计划作业

java - 创建 SQL 插入语句到 CSV 文件

csv - Spark SQL如何读取压缩的csv文件?

java - 从framework.jar制作dex文件

32bit-64bit - 在Natty 64位上安装32位JDK,我

c++ - 如何在 C++ 中读取和解析 CSV 文件?

Golang 在没有显式文件锁定的情况下同时读/写文件

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 使用 System.out 和 PrintWriter 写入控制台