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))
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))