code: def test_should_be_deserializable(self):
      # When
      @IntentClassifier.register("my_intent_classifier", True)
      class MyIntentClassifier(MockIntentClassifier):
          pass
  
      @SlotFiller.register("my_slot_filler", True)
      class MySlotFiller(MockSlotFiller):
          pass
  
      parser_config = {
          "unit_name": "probabilistic_intent_parser",
          "intent_classifier_config": {
              "unit_name": "my_intent_classifier"
          },
          "slot_filler_config": {"unit_name": "my_slot_filler"},
      }
      parser_dict = {
          "unit_name": "probabilistic_intent_parser",
          "slot_fillers": [
              {
                  "intent": "MakeCoffee",
                  "slot_filler_name": "slot_filler_MakeCoffee",
              },
              {
                  "intent": "MakeTea",
                  "slot_filler_name": "slot_filler_MakeTea",
              },
          ],
          "config": parser_config,
      }
      self.tmp_file_path.mkdir()
      (self.tmp_file_path / "intent_classifier").mkdir()
      (self.tmp_file_path / "slot_filler_MakeCoffee").mkdir()
      (self.tmp_file_path / "slot_filler_MakeTea").mkdir()
      self.writeJsonContent(
          self.tmp_file_path / "intent_parser.json", parser_dict
      )
      self.writeJsonContent(
          self.tmp_file_path / "intent_classifier" / "metadata.json",
          {"unit_name": "my_intent_classifier", "fitted": True},
      )
      self.writeJsonContent(
          self.tmp_file_path
          / "slot_filler_MakeCoffee"
          / "metadata.json",
          {"unit_name": "my_slot_filler", "fitted": True},
      )
      self.writeJsonContent(
          self.tmp_file_path / "slot_filler_MakeTea" / "metadata.json",
          {"unit_name": "my_slot_filler", "fitted": True},
      )
  
      # When
      parser = ProbabilisticIntentParser.from_path(self.tmp_file_path)
  
      # Then
      self.assertDictEqual(parser.config.to_dict(), parser_config)
      self.assertIsInstance(
          parser.intent_classifier, MyIntentClassifier
      )
      self.assertListEqual(
          sorted(parser.slot_fillers), ["MakeCoffee", "MakeTea"]
      )
      for slot_filler in itervalues(parser.slot_fillers):
          self.assertIsInstance(slot_filler, MySlotFiller)
  
imports: from __future__ import unicode_literals
  import io
  from future.utils import itervalues
  from mock import patch
  from snips_nlu.constants import RES_ENTITY, RES_INTENT, RES_INTENT_NAME, RES_SLOTS, RES_VALUE, RANDOM_STATE
  from snips_nlu.dataset import Dataset
  from snips_nlu.exceptions import IntentNotFoundError, NotTrained
  from snips_nlu.intent_classifier import IntentClassifier, LogRegIntentClassifier
  from snips_nlu.intent_parser import ProbabilisticIntentParser
  from snips_nlu.pipeline.configs import CRFSlotFillerConfig, LogRegIntentClassifierConfig, ProbabilisticIntentParserConfig
  from snips_nlu.result import unresolved_slot, intent_classification_result
  from snips_nlu.slot_filler import SlotFiller
  from snips_nlu.tests.utils import FixtureTest, MockIntentClassifier, MockSlotFiller
label_desc: Use image node_id 16 for calling the TestProbabilisticIntentParser obj's underlying member method code with example usage: obj.test_should_be_deserializable() without return types