code: def _align(
      cls,
      trg_tokens: List[str],
      tokens: List[str],
      pos_label: Enum,
      neg_label: Enum,
  ) -> List[Tuple[int, Enum]]:
      indices = word_rank_alignment(trg_tokens, tokens)
      token_labels = []
      cur = 0
      for i, w in enumerate(tokens):
          if cur < len(indices) and w == trg_tokens[indices[cur]]:
              token_labels.append((indices[cur], pos_label))
              cur += 1
          else:
              token_labels.append((cls.NEG_IDX, neg_label))
      return token_labels
  
file_path: vizseq/vizseq/_aligners/text_aligner.py
imports: from typing import List, Tuple, Dict
  from collections import Counter
  from enum import Enum
  from nltk.translate.ribes_score import word_rank_alignment
label_desc: Use image node_id 1 for calling the VizSeqBaseTextAligner obj's underlying member method code with example usage: obj._align(cls, trg_tokens, tokens, pos_label, neg_label) and returns: token_labels