code: def __init__(self, tokenizer, type_schema, *args, **kwargs):
      super().__init__(tokenizer, *args, **kwargs)
      self.tree_end = self.tokenizer.convert_tokens_to_ids(
          [span_start]
      )[0]
      self.type_tree = get_label_name_tree(
          type_schema.type_list,
          self.tokenizer,
          end_symbol=self.tree_end,
      )
      self.role_tree = get_label_name_tree(
          type_schema.role_list,
          self.tokenizer,
          end_symbol=self.tree_end,
      )
      self.type_start = self.tokenizer.convert_tokens_to_ids(
          [type_start]
      )[0]
      self.type_end = self.tokenizer.convert_tokens_to_ids([type_end])[
          0
      ]
      self.span_start = self.tokenizer.convert_tokens_to_ids(
          [span_start]
      )[0]
      self.null_span = self.tokenizer.convert_tokens_to_ids(
          [null_span]
      )[0]
      self.text_start = self.tokenizer.convert_tokens_to_ids(
          [text_start]
      )[0]
  
file_path: DeepKE/src/deepke/name_entity_re/cross/seq2seq/constraint_decoder/spotasoc_constraint_decoder.py
imports: import os
  from typing import List, Dict
  from ...extraction.label_tree import get_label_name_tree
  from ...extraction.constants import span_start, type_start, type_end, null_span, text_start
  from ...seq2seq.constraint_decoder.constraint_decoder import ConstraintDecoder, find_bracket_position, generated_search_src_sequence
label_desc: Use image node_id 1 to create a new SpotAsocConstraintDecoder object from inherited base classes: ConstraintDecoder with example: obj = SpotAsocConstraintDecoder(tokenizer, type_schema)