Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
 def char_to_char(self, source: str, target: str) -> Matrix:
     # Run Levenshtein at character level.
     sm = StringMatcher(seq1=source, seq2=target)
     mb = sm.get_matching_blocks()
     return self._mat_from_blocks(mb, len(source), len(target))