loadModel method

Future<void> loadModel()

Implementation

Future<void> loadModel() async {
  prevStatus = {};
  prevStatus.put('B', ['E', 'S']);
  prevStatus.put('M', ['M', 'B']);
  prevStatus.put('S', ['S', 'E']);
  prevStatus.put('E', ['B', 'M']);

  start = {};
  start.put('B', -0.26268660809250016);
  start.put('E', -3.14e+100);
  start.put('M', -3.14e+100);
  start.put('S', -1.4652633398537678);

  trans = {};
  Map<String, double> transB = {};
  transB.put('E', -0.510825623765990);
  transB.put('M', -0.916290731874155);
  trans.put('B', transB);
  Map<String, double> transE = {};
  transE.put('B', -0.5897149736854513);
  transE.put('S', -0.8085250474669937);
  trans.put('E', transE);
  Map<String, double> transM = {};
  transM.put('E', -0.33344856811948514);
  transM.put('M', -1.2603623820268226);
  trans.put('M', transM);
  Map<String, double> transS = {};
  transS.put('B', -0.7211965654669841);
  transS.put('S', -0.6658631448798212);
  trans.put('S', transS);

  var file = await rootBundle.loadString(PROB_EMIT);

  emit = {};
  Map<String, double> values = {};
  for (var line in file.split("\n")) {
    List<String> tokens = line.split("\t");
    if (tokens.length == 1) {
      values = {};
      if (tokens[0].isNotEmpty) emit.put(tokens[0].charAt(0), values);
    } else {
      values.put(tokens[0].charAt(0), double.parse(tokens[1]));
    }
  }
}