class_docstr: A deterministic Intent parser implementation based on a dictionary
  
  This intent parser is very strict by nature, and tends to have a very good
  precision but a low recall. For this reason, it is interesting to use it
  first before potentially falling back to another parser.
class_docstr_tok: ["A","deterministic","Intent","parser","implementation","based","on","a","dictionary","This","intent","parser","is","very","strict","by","nature",",","and","tends","to","have","a","very","good","precision","but","a","low","recall",".","For","this","reason",",","it","is","interesting","to","use","it","first","before","potentially","falling","back","to","another","parser","."]
docstr: Parse the map output to the parser's result format
docstr_tok: ["Parse","the","map","output","to","the","parser","'s","result","format"]
code: def _parse_map_output(self, text, output, entities, intents):
      """Parse the map output to the parser's result format"""
      intent_id, slot_ids = output
      intent_name = self._intents_names[intent_id]
      if intents is not None and intent_name not in intents:
          return None
  
      parsed_intent = intent_classification_result(
          intent_name=intent_name, probability=1.0
      )
      slots = []
      # assert invariant
      assert len(slot_ids) == len(entities)
      for slot_id, entity in zip(slot_ids, entities):
          slot_name = self._slots_names[slot_id]
          rng_start = entity[RES_MATCH_RANGE][START]
          rng_end = entity[RES_MATCH_RANGE][END]
          slot_value = text[rng_start:rng_end]
          entity_name = entity[ENTITY_KIND]
          slot = unresolved_slot(
              [rng_start, rng_end], slot_value, entity_name, slot_name
          )
          slots.append(slot)
  
      return extraction_result(parsed_intent, slots)
  
imports: from __future__ import unicode_literals
  import json
  import logging
  from builtins import str
  from collections import defaultdict
  from itertools import combinations
  from pathlib import Path
  from future.utils import iteritems, itervalues
  from snips_nlu_utils import normalize, hash_str
  from snips_nlu.common.log_utils import log_elapsed_time, log_result
  from snips_nlu.common.utils import check_persisted_path, deduplicate_overlapping_entities, fitted_required, json_string
  from snips_nlu.constants import DATA, END, ENTITIES, ENTITY, ENTITY_KIND, INTENTS, LANGUAGE, RES_INTENT, RES_INTENT_NAME, RES_MATCH_RANGE, RES_SLOTS, SLOT_NAME, START, TEXT, UTTERANCES, RES_PROBA
  from snips_nlu.dataset import validate_and_format_dataset, extract_intent_entities
  from snips_nlu.dataset.utils import get_stop_words_whitelist
  from snips_nlu.entity_parser.builtin_entity_parser import is_builtin_entity
  from snips_nlu.exceptions import IntentNotFoundError, LoadingError
  from snips_nlu.intent_parser.intent_parser import IntentParser
  from snips_nlu.pipeline.configs import LookupIntentParserConfig
  from snips_nlu.preprocessing import tokenize_light
  from snips_nlu.resources import get_stop_words
  from snips_nlu.result import empty_result, intent_classification_result, parsing_result, unresolved_slot, extraction_result
label_desc: Use image node_id 9 for calling the LookupIntentParser obj's underlying member method code with example usage: obj._parse_map_output(text, output, entities, intents) and returns: extraction_result, None