code: def build(
      cls, dataset=None, language=None, gazetteer_entity_scope=None
  ):
      from snips_nlu_parsers import get_supported_gazetteer_entities
  
      global _BUILTIN_ENTITY_PARSERS
  
      if dataset is not None:
          language = dataset[LANGUAGE]
          gazetteer_entity_scope = [
              entity
              for entity in dataset[ENTITIES]
              if is_gazetteer_entity(entity)
          ]
  
      if language is None:
          raise ValueError(
              "Either a dataset or a language must be provided "
              "in order to build a BuiltinEntityParser"
          )
  
      if gazetteer_entity_scope is None:
          gazetteer_entity_scope = []
      caching_key = _get_caching_key(language, gazetteer_entity_scope)
      if caching_key not in _BUILTIN_ENTITY_PARSERS:
          for entity in gazetteer_entity_scope:
              if entity not in get_supported_gazetteer_entities(
                  language
              ):
                  raise ValueError(
                      "Gazetteer entity '%s' is not supported in "
                      "language '%s'" % (entity, language)
                  )
          _BUILTIN_ENTITY_PARSERS[caching_key] = _build_builtin_parser(
              language, gazetteer_entity_scope
          )
      return _BUILTIN_ENTITY_PARSERS[caching_key]
  
imports: from __future__ import unicode_literals
  import json
  import shutil
  from future.builtins import str
  from snips_nlu.common.io_utils import temp_dir
  from snips_nlu.common.utils import json_string
  from snips_nlu.constants import DATA_PATH, ENTITIES, LANGUAGE
  from snips_nlu.entity_parser.entity_parser import EntityParser
  from snips_nlu.result import parsed_entity
label_desc: Use image node_id 5 for calling the BuiltinEntityParser obj's underlying member method code with example usage: obj.build(cls, dataset, language, gazetteer_entity_scope) and returns: _BUILTIN_ENTITY_PARSERS