0

誰かがこれをしましたか?このパーサーモジュールの使用方法に関するドキュメントはありますか?コードを調べましたが、解析後にデータを実際に使用する方法がわかりません。

ファイルsrc\main \ java \ weka \ core \ converters \ ArffLoader.java(Arff解析が行われる場所であると私は想定しています)には、次の手順があります。

  • バッチ使用の一般的なコード:
  • BufferedReaderリーダー=newBufferedReader(new FileReader( "/ some / where / file.arff"));
  • ArffReader arff = new ArffReader(reader);
  • インスタンスデータ=arff.getData();
  • data.setClassIndex(data.numAttributes()-1);

しかし、「データ」で他に何ができるでしょうか?各行と各行の値にアクセスするにはどうすればよいですか?

(ちなみに、私はJavaを初めて使用します。このコードを実行すると、データが何を提供するかを確認するために、データに対して何らかの内省を行うことができますか?それがPythonで行うことです。)

(プロジェクトで使用する、より単純なオープンソースのArffパーサーが存在する場合はその提案も受け付けています。)

4

6 に答える 6

2

あなたの答えはInstancesクラスにあるように見えます-それはデータが保存されている場所です。

私は、そのjavadocを見つけるか生成するか、または単にそのソースを熟読することによって、インスタンスクラスのAPIを見つけるでしょう。このクラスのメソッドを使用すると、ARFFファイルからロードされたデータを操作できるようになります。

于 2010-08-06T07:10:50.507 に答える
1

PythonのWekaを使用して、内省することができます。私はJRubyのWekaを使って同じことをすることに成功しています。安定版および開発版のAPIにリンクしているページを見つけるためのGoogleの「Wekaドキュメント」。私の答えに2番目のリンクを入れるのに十分な評判がありません:)

于 2010-08-16T00:44:20.780 に答える
1

wekaパーサーは、内部データモデルと密接に関連しています- Instances

ARFF形式の解析はそれほど難しくありません。目的のデータ表現を直接生成するカスタム・パーサーを作成する方がよい場合があります。

于 2011-11-25T17:52:28.903 に答える
1

Instancesオブジェクトデータを取得したら、それを使用して次のことができます。

data.get(index) //get a instance
data.enumerateInstances() // Returns an enumeration of all instances in the dataset.

すべてのメソッドは、インスタンスJavaDocで確認できます。

于 2013-03-14T23:47:46.763 に答える
1

私はこのようなものを使用しました:

public class Main {
    private static final String ARFF_FILE_PATH = "YOUR_ARFF_FILE_PATH";

    public static void main(String[] args) throws IOException {
        ArffLoader arffLoader = new ArffLoader();

        File datasetFile = new File(ARFF_FILE_PATH);
        arffLoader.setFile(datasetFile);

        Instances dataInstances = arffLoader.getDataSet();

        for(Instance inst : dataInstances){
            System.out.println("Instance:" + inst);
        }
    }
}
于 2013-11-08T18:26:18.983 に答える
0
import java.io.*;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
import weka.core.converters.ArffLoader.ArffReader;

public class assign3 {
     public static void main(String args[]) throws IOException {

ArffLoader arffloader=new ArffLoader();
File filedata = new File("/home/cse611/Downloads/iris.arff");
arffloader.setFile(filedata);

     Instances data = arffloader.getDataSet();`enter code here`
     for(Instance inst : data){
         System.out.println("Instance:" + inst);
     }
     }
}
于 2015-02-06T06:10:38.170 に答える