5

RapidMiner にテキスト分類プロセスがあります。指定されたExcelシートからテストデータを読み込み、分類を行います。このプロセスを実行しているだけの小さな Java アプリケーションもあります。ここで、アプリケーションでファイル入力部分を作成したいと考えています。これにより、アプリケーションから (RapidMiner からではなく) いつでも Excel ファイルを指定できるようになります。ヒントはありますか?

これはコードです:

import com.rapidminer.RapidMiner;
import com.rapidminer.Process;
import com.rapidminer.example.Attribute;
import com.rapidminer.example.Example;
import com.rapidminer.example.ExampleSet;
import com.rapidminer.operator.IOContainer;
import com.rapidminer.operator.Operator;
import com.rapidminer.operator.OperatorException;



import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import com.rapidminer.operator.io.ExcelExampleSource; 
import com.rapidminer.tools.XMLException;


public class Classification {

    public static void main(String [] args) throws Exception{
         ExampleSet resultSet1 = null;
         IOContainer ioInput = null;
        IOContainer ioResult;
        try {
            RapidMiner.setExecutionMode(RapidMiner.ExecutionMode.COMMAND_LINE);
            RapidMiner.init();
            Process pr = new Process(new File("C:\\Users\\MP-TEST\\Desktop\\Rapid_Test\\Wieder_Model.rmp"));
            Operator op = pr.getOperator("Read Excel");
            op.setParameter(ExcelExampleSource.PARAMETER_EXCEL_FILE, "C:\\Users\\MP-TEST\\Desktop\\Rapid_Test\\HaendlerRatings_neu.xls");
            ioResult = pr.run(ioInput);
            if (ioResult.getElementAt(0) instanceof ExampleSet) {
                resultSet1 = (ExampleSet)ioResult.getElementAt(0);

                for (Example example : resultSet1) {
                    Iterator<Attribute> allAtts = example.getAttributes().allAttributes();
                    while(allAtts.hasNext()) {
                        Attribute a = allAtts.next();
                                if (a.isNumerical()) {
                                        double value = example.getValue(a);
                                        System.out.println(value);

                                } else {
                                        String value = example.getValueAsString(a);
                                        System.out.println(value);
                                }
                         }
                }
                    }
        } catch (IOException | XMLException | OperatorException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }




          }
}

これはエラーです:

Apr 09, 2013 9:06:05 AM com.rapidminer.Process run
INFO: Process C:\Users\MP-TEST\Desktop\Rapid_Test\Wieder_Model.rmp starts
com.rapidminer.operator.UserError: A value for the parameter 'excel_file' must be specified! 
    at com.rapidminer.operator.nio.model.ExcelResultSetConfiguration.makeDataResultSet(ExcelResultSetConfiguration.java:316)
    at com.rapidminer.operator.nio.model.AbstractDataResultSetReader.createExampleSet(AbstractDataResultSetReader.java:127)
    at com.rapidminer.operator.io.AbstractExampleSource.read(AbstractExampleSource.java:52)
    at com.rapidminer.operator.io.AbstractExampleSource.read(AbstractExampleSource.java:1)
    at com.rapidminer.operator.io.AbstractReader.doWork(AbstractReader.java:126)
    at com.rapidminer.operator.Operator.execute(Operator.java:855)
    at com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:51)
    at com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:711)
    at com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:379)
    at com.rapidminer.operator.Operator.execute(Operator.java:855)
    at com.rapidminer.Process.run(Process.java:949)
    at com.rapidminer.Process.run(Process.java:873)
    at com.rapidminer.Process.run(Process.java:832)
    at com.rapidminer.Process.run(Process.java:827)
    at Classification.main(Classification.java:29)

よろしくお願いします

アーメン

4

3 に答える 3

5

私にとってはうまくいきます:

  • Rapidminer をダウンロード(およびファイルを解凍)
  • 「lib」ディレクトリには、次のものが必要です。
    1. Rapidminer.jar
    2. launcher.jar
    3. 「/lib/freehep」ディレクトリ内のすべてのjar。
  • libs 1、2、および 3 をクラスパス Java プロジェクト (ライブラリ) に配置します。
  • このコードをコピーして実行します。


    import com.rapidminer.Process;
    import com.rapidminer.RapidMiner;
    import com.rapidminer.operator.Operator;
    import com.rapidminer.operator.OperatorException;
    import com.rapidminer.operator.io.ExcelExampleSource;
    import com.rapidminer.tools.XMLException;
    import java.io.File;
    import java.io.IOException;
    import java.lang.Object;

    public class ReadRapidminerProcess {
      public static void main(String[] args) {
        try {
          RapidMiner.setExecutionMode(RapidMiner.ExecutionMode.COMMAND_LINE);
          RapidMiner.init();

          Process process = new Process(new File("/your_path/your_file.rmp"));
          process.run();

        } catch (IOException | XMLException | OperatorException ex) {
          ex.printStackTrace();
        }
      }
    }

私はあなたを助けたいと思っています、私は答えを見つける前にたくさん検索しました.

于 2013-10-24T03:40:56.567 に答える