code: def to_span_html(
      cls,
      tokens: Dict[str, List[str]],
      alignments: Dict[str, List[Tuple[int, Enum]]],
      span_id_prefix: str,
      example_id: int,
      trg_span_id_prefix: str,
  ) -> Dict[str, List[str]]:
      return {
          k: [
              cls._get_span_html(
                  tokens[k][i],
                  span_id_prefix,
                  t[1],
                  k,
                  example_id,
                  i,
                  trg_span_id_prefix,
                  t[0],
              )
              for i, t in enumerate(v)
          ]
          for k, v in alignments.items()
      }
  
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 4 for calling the VizSeqBaseTextAligner obj's underlying member method code with example usage: obj.to_span_html(cls, tokens, alignments, span_id_prefix, example_id, trg_span_id_prefix) and returns: unknown