Ignore:
Timestamp:
09/14/11 20:17:10 (13 years ago)
Author:
sherbold
Message:
  • refactored commands for the training of models (trainDFA, trainMarkovModel, trainPPM) by extracting one common abstract superclass

+ added command updateModel for model reinforcement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/commands/CMDtrainDFA.java

    r171 r184  
    11package de.ugoe.cs.eventbench.commands; 
    22 
    3 import java.security.InvalidParameterException; 
    43import java.util.List; 
    54import java.util.Random; 
    65 
    7 import de.ugoe.cs.eventbench.data.Event; 
    8 import de.ugoe.cs.eventbench.data.GlobalDataContainer; 
    96import de.ugoe.cs.eventbench.models.DeterministicFiniteAutomaton; 
    10 import de.ugoe.cs.util.console.Command; 
     7import de.ugoe.cs.eventbench.models.TrieBasedModel; 
    118import de.ugoe.cs.util.console.Console; 
    129 
     
    1714 *  
    1815 * @author Steffen Herbold 
    19  * @version 1.0 
     16 * @version 2.0 
    2017 */ 
    21 public class CMDtrainDFA implements Command { 
     18public class CMDtrainDFA extends AbstractTrainCommand { 
    2219 
    2320        /* 
     
    2825        @Override 
    2926        public void help() { 
    30                 Console.println("Usage: trainDFA <modelName>"); 
     27                Console.println("Usage: trainDFA <modelName> <sequencesName>"); 
     28        } 
     29 
     30        /** 
     31         * <p> 
     32         * No additional parameters. 
     33         * </p> 
     34         *  
     35         * @see de.ugoe.cs.eventbench.commands.AbstractTrainCommand#handleAdditionalParameters(java.util.List) 
     36         */ 
     37        @Override 
     38        void handleAdditionalParameters(List<Object> parameters) throws Exception { 
     39                // no additional parameters. 
    3140        } 
    3241 
     
    3443         * (non-Javadoc) 
    3544         *  
    36          * @see de.ugoe.cs.util.console.Command#run(java.util.List) 
     45         * @see de.ugoe.cs.eventbench.commands.AbstractTrainCommand#createModel() 
    3746         */ 
    38         @SuppressWarnings("unchecked") 
    3947        @Override 
    40         public void run(List<Object> parameters) { 
    41                 String modelname; 
    42                 try { 
    43                         modelname = (String) parameters.get(0); 
    44                 } catch (Exception e) { 
    45                         throw new InvalidParameterException(); 
    46                 } 
    47  
    48                 List<List<Event<?>>> sequences = null; 
    49                 Object dataObject = GlobalDataContainer.getInstance().getData( 
    50                                 "sequences"); 
    51  
    52                 try { 
    53                         sequences = (List<List<Event<?>>>) dataObject; 
    54                         if (sequences.size() > 0) { 
    55                                 if (sequences.get(0).get(0) instanceof Event) { 
    56                                         DeterministicFiniteAutomaton model = new DeterministicFiniteAutomaton( 
    57                                                         new Random()); 
    58                                         model.train(sequences); 
    59                                         if (GlobalDataContainer.getInstance().addData(modelname, 
    60                                                         model)) { 
    61                                                 Console.traceln("Old data \"" + modelname 
    62                                                                 + "\" overwritten"); 
    63                                         } 
    64                                 } else { 
    65                                         Console.traceln("Illegal use of \"sequences\" parameter in the GlobalDataContainer."); 
    66                                         Console.traceln("The parameter should always be of type List<List<? extends Event<?>>!"); 
    67                                 } 
    68                         } 
    69                 } catch (ClassCastException e) { 
    70                         Console.println("Sequences need to be loaded first using parseXML"); 
    71                 } 
     48        TrieBasedModel createModel() { 
     49                return new DeterministicFiniteAutomaton(new Random()); 
    7250        } 
    7351 
Note: See TracChangeset for help on using the changeset viewer.