docs: def evaluate_model_single_recording_preloaded_multisymbol(preprocessing_queue,
                                                            feature_list,
                                                            model,
                                                            output_semantics,
                                                            recording):
      """
      Evaluate a model for a single recording, after everything has been loaded.
      Multiple symbols are recognized.
  
      Parameters
      ----------
      preprocessing_queue : list
          List of all preprocessing objects.
      feature_list : list
          List of all feature objects.
      model : dict
          Neural network model.
      output_semantics :
          List that defines what an output means.
      recording :
          The handwritten recording in JSON format.
      """
      import json
      import nntoolkit.evaluate
      recording = json.loads(recording)
      logging.info(("## start (%i strokes)" % len(recording)) + "#" * 80)
      hypotheses = []  # [[{'score': 0.123, symbols: [123, 123]}]  # split0
                       #  []] # Split i...
      for split in get_possible_splits(len(recording)):
          recording_segmented = segment_by_split(split, recording)
          cur_split_results = []
          for i, symbol in enumerate(recording_segmented):
              handwriting = handwritten_data.HandwrittenData(json.dumps(symbol))
              handwriting.preprocessing(preprocessing_queue)
              x = handwriting.feature_extraction(feature_list)
  
              model_output = nntoolkit.evaluate.get_model_output(model, [x])
              results = nntoolkit.evaluate.get_results(model_output,
                                                       output_semantics)
              results = results[:10]
              cur_split_results.append([el for el in results if el['probability'] >= 0.01])
              # serve.show_results(results, n=10)
  
          # Now that I have all symbols of this split, I have to get all
          # combinations of the hypothesis
          import itertools
          for hyp in itertools.product(*cur_split_results):
              hypotheses.append({'score': reduce(lambda x, y: x*y,
                                                 [s['probability'] for s in hyp])*len(hyp)/len(recording),
                                 'symbols': [s['semantics'] for s in hyp],
                                 'min_part': min([s['probability'] for s in hyp]),
                                 'segmentation': split})
  
      hypotheses = sorted(hypotheses, key=lambda n: n['min_part'], reverse=True)[:10]
      for i, hyp in enumerate(hypotheses):
          if hyp['score'] > 0.001:
              logging.info("%0.4f: %s (seg: %s)", hyp['score'], hyp['symbols'], hyp['segmentation'])
      return nntoolkit.evaluate.get_results(model_output, output_semantics)