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: Performs intent parsing on the provided *text*
  
  Intent and slots are extracted simultaneously through pattern matching
  
  Args:
      text (str): input
      intents (str or list of str): if provided, reduces the scope of
          intent parsing to the provided list of intents
      top_n (int, optional): when provided, this method will return a
          list of at most top_n most likely intents, instead of a single
          parsing result.
          Note that the returned list can contain less than ``top_n``
          elements, for instance when the parameter ``intents`` is not
          None, or when ``top_n`` is greater than the total number of
          intents.
  
  Returns:
      dict or list: the most likely intent(s) along with the extracted
      slots. See :func:`.parsing_result` and :func:`.extraction_result`
      for the output format.
  
  Raises:
      NotTrained: when the intent parser is not fitted
docstr_tok: ["Performs","intent","parsing","on","the","provided","*","text","*","Intent","and","slots","are","extracted","simultaneously","through","pattern","matching","Args",":","text","(","str",")",":","input","intents","(","str","or","list","of","str",")",":","if","provided",",","reduces","the","scope","of","intent","parsing","to","the","provided","list","of","intents","top_n","(","int",",","optional",")",":","when","provided",",","this","method","will","return","a","list","of","at","most","top_n","most","likely","intents",",","instead","of","a","single","parsing","result",".","Note","that","the","returned","list","can","contain","less","than","``","top_n","``","elements",",","for","instance","when","the","parameter","``","intents","``","is","not","None",",","or","when","``","top_n","``","is","greater","than","the","total","number","of","intents",".","Returns",":","dict","or","list",":","the","most","likely","intent","(","s",")","along","with","the","extracted","slots",".","See",":","func",":","`",".parsing_result","`","and",":","func",":","`",".extraction_result","`","for","the","output","format",".","Raises",":","NotTrained",":","when","the","intent","parser","is","not","fitted"]
code: def parse(self, text, intents=None, top_n=None):
      """Performs intent parsing on the provided *text*
  
      Intent and slots are extracted simultaneously through pattern matching
  
      Args:
          text (str): input
          intents (str or list of str): if provided, reduces the scope of
              intent parsing to the provided list of intents
          top_n (int, optional): when provided, this method will return a
              list of at most top_n most likely intents, instead of a single
              parsing result.
              Note that the returned list can contain less than ``top_n``
              elements, for instance when the parameter ``intents`` is not
              None, or when ``top_n`` is greater than the total number of
              intents.
  
      Returns:
          dict or list: the most likely intent(s) along with the extracted
          slots. See :func:`.parsing_result` and :func:`.extraction_result`
          for the output format.
  
      Raises:
          NotTrained: when the intent parser is not fitted
      """
      if top_n is None:
          top_intents = self._parse_top_intents(
              text, top_n=1, intents=intents
          )
          if top_intents:
              intent = top_intents[0][RES_INTENT]
              slots = top_intents[0][RES_SLOTS]
              if intent[RES_PROBA] <= 0.5:
                  # return None in case of ambiguity
                  return empty_result(text, probability=1.0)
              return parsing_result(text, intent, slots)
          return empty_result(text, probability=1.0)
      return self._parse_top_intents(text, top_n=top_n, intents=intents)
  
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 6 for calling the LookupIntentParser obj's underlying member method code with example usage: obj.parse(text, intents, top_n) and returns: self, empty_result, parsing_result, empty_result