code: def _parse(self, text, scope=None):
      tokens = tokenize(text, self.language)
      shifts = _compute_char_shifts(tokens)
      cleaned_text = " ".join(token.value for token in tokens)
  
      entities = self._parser.parse(cleaned_text, scope)
      result = []
      for entity in entities:
          start = entity["range"]["start"]
          start -= shifts[start]
          end = entity["range"]["end"]
          end -= shifts[end - 1]
          entity_range = {START: start, END: end}
          ent = parsed_entity(
              entity_kind=entity["entity_identifier"],
              entity_value=entity["value"],
              entity_resolved_value=entity["resolved_value"],
              entity_range=entity_range,
          )
          result.append(ent)
      return result
  
imports: from __future__ import unicode_literals
  import json
  import operator
  from copy import deepcopy
  from pathlib import Path
  from future.utils import iteritems, viewvalues
  from snips_nlu.common.utils import json_string
  from snips_nlu.constants import END, ENTITIES, LANGUAGE, MATCHING_STRICTNESS, START, UTTERANCES, LICENSE_INFO
  from snips_nlu.entity_parser.builtin_entity_parser import is_builtin_entity
  from snips_nlu.entity_parser.custom_entity_parser_usage import CustomEntityParserUsage
  from snips_nlu.entity_parser.entity_parser import EntityParser
  from snips_nlu.preprocessing import stem, tokenize, tokenize_light
  from snips_nlu.result import parsed_entity
label_desc: Use image node_id 2 for calling the CustomEntityParser obj's underlying member method code with example usage: obj._parse(text, scope) and returns: result