code: def char_to_char(source: str, target: str) -> np.ndarray:
      """Find the character adjacency matrix mapping source string chars to target string chars.
  
      Uses StringMatcher from Levenshtein package to find non-overlapping matching subsequences in
      input strings. Uses the result to create a character adjacency matrix from source to target.
      (https://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_matching_blocks)
  
      Args:
          source (str): string of source chars.
          target (str): string of target chars.
  
      Returns:
          np.ndarray adjacency matrix mapping chars in the source str to chars in the target str.
  
      """
      sm = StringMatcher(seq1=source, seq2=target)
      mb = sm.get_matching_blocks()
      return _mat_from_blocks(mb, len(source), len(target))
  
file_path: jiant/jiant/utils/retokenize.py
imports: from typing import Iterable, Sequence, Tuple, Union
  from Levenshtein.StringMatcher import StringMatcher
  from nltk.tokenize.util import string_span_tokenize
  import numpy
label_desc: Use image node_id 5 for calling a global function with example usage: char_to_char(source, target) and returns: _mat_from_blocks