2

Javaコードを使用してWeka分類を自動化しようとしています。csvファイルを読み込もうとすると、次のエラーが発生します。

java.io.IOException:値の数が間違っています。weka.core.converters.CSVLoader.getInstance(CSVLoader.java:747)のweka.core.converters.ConverterUtils.errms(ConverterUtils.java:912)で98を読み取り、97を期待し、Token [EOL]、3行目を読み取ります。 .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)atedu.rice.cs.drjava.model.compiler。 JavacCompiler.runCommand(JavacCompiler.java:271)

Weka GUIを介してcsvファイルをフィードしようとすると、同じエラーが発生します。私の知る限り、csvファイルはWekaで正常に使用した他のcsvファイルと同じです。このエラーの原因について何か考えはありますか?

OldNabbleでこれに対する満足のいく答えを見つけることができませんでした-私は見つけた1つの提案を試しましたが、うまくいきませんでした。1つの提案は、エントリを二重引用符で囲むことでした。これは何も変更しませんでした。

わかりやすくするために(そしてアップロード方法がわからないため)、csvファイルは次のようになります。

C1V1、C2V1、C3V1、...クラス、

4000.5、3890.6、2900.7、... N、

..。

..。

行ごとに97のエントリがあります。別のバージョンでは、文字列と文字(最初の行と最後の列)を二重引用符で囲んでいますが、前に述べたように、それは役に立ちません。

ありがとう!

4

2 に答える 2

1

wekaツールを使用したときにも同じ問題が発生しました。このように整理することができました。

ここに画像の説明を入力してください

このタイプの例外が発生した場合。プロンプト行の上にある行を見つけます。例:私の場合、例外は80542行の障害が原因であるとプロンプトが表示されたため、80541行を確認する必要があります。次に、行に余分なコンマまたは余分な二重引用符があることがわかります。その余分なコンマまたは二重引用符を削除して、ファイルを保存します。もう一度実行してください。その後、例外なく正しく動作します。

于 2014-11-30T09:06:30.490 に答える
0

違いを発見しました。.csvファイルの行末にコンマがあると、csvloaderがこのエラーをスローします。したがって、これを使用しようとしている場合は、.csvファイルの行末のコンマを削除してください。1行目と2行目ではなく3行目だけがエラーをスローした理由はわかりませんが(すべての行が同一でした)、これで修正されました。

于 2012-05-01T02:52:58.813 に答える