class_docstr: Intent parser which consists in two steps: intent classification then
  slot filling
class_docstr_tok: ["Intent","parser","which","consists","in","two","steps",":","intent","classification","then","slot","filling"]
docstr: Loads a :class:`ProbabilisticIntentParser` instance from a path
  
  The data at the given path must have been generated using
  :func:`~ProbabilisticIntentParser.persist`
docstr_tok: ["Loads","a",":","class",":","`","ProbabilisticIntentParser","`","instance","from","a","path","The","data","at","the","given","path","must","have","been","generated","using",":","func",":","`","~ProbabilisticIntentParser.persist","`"]
code: def from_path(cls, path, **shared):
      """Loads a :class:`ProbabilisticIntentParser` instance from a path
  
      The data at the given path must have been generated using
      :func:`~ProbabilisticIntentParser.persist`
      """
      path = Path(path)
      model_path = path / "intent_parser.json"
      if not model_path.exists():
          raise LoadingError(
              "Missing probabilistic intent parser model file: %s"
              % model_path.name
          )
  
      with model_path.open(encoding="utf8") as f:
          model = json.load(f)
  
      config = cls.config_type.from_dict(model["config"])
      parser = cls(config=config, **shared)
      classifier = None
      intent_classifier_path = path / "intent_classifier"
      if intent_classifier_path.exists():
          classifier_unit_name = (
              config.intent_classifier_config.unit_name
          )
          classifier = IntentClassifier.load_from_path(
              intent_classifier_path, classifier_unit_name, **shared
          )
  
      slot_fillers = dict()
      slot_filler_unit_name = config.slot_filler_config.unit_name
      for slot_filler_conf in model["slot_fillers"]:
          intent = slot_filler_conf["intent"]
          slot_filler_path = path / slot_filler_conf["slot_filler_name"]
          slot_filler = SlotFiller.load_from_path(
              slot_filler_path, slot_filler_unit_name, **shared
          )
          slot_fillers[intent] = slot_filler
  
      parser.intent_classifier = classifier
      parser.slot_fillers = slot_fillers
      return parser
  
imports: from __future__ import unicode_literals
  import json
  import logging
  from builtins import str
  from copy import deepcopy
  from datetime import datetime
  from pathlib import Path
  from future.utils import iteritems, itervalues
  from snips_nlu.common.log_utils import log_elapsed_time, log_result
  from snips_nlu.common.utils import check_persisted_path, elapsed_since, fitted_required, json_string
  from snips_nlu.constants import INTENTS, RES_INTENT_NAME
  from snips_nlu.dataset import validate_and_format_dataset
  from snips_nlu.exceptions import IntentNotFoundError, LoadingError
  from snips_nlu.intent_classifier import IntentClassifier
  from snips_nlu.intent_parser.intent_parser import IntentParser
  from snips_nlu.pipeline.configs import ProbabilisticIntentParserConfig
  from snips_nlu.result import parsing_result, extraction_result
  from snips_nlu.slot_filler import SlotFiller
label_desc: Use image node_id 8 for calling the ProbabilisticIntentParser obj's underlying member method code with example usage: obj.from_path(cls, path) and returns: parser