| 123456789101112131415161718192021 |
- from .string_distance import MetricStringDistance, NormalizedStringDistance
- from .longest_common_subsequence import LongestCommonSubsequence
- class MetricLCS(MetricStringDistance, NormalizedStringDistance):
- def __init__(self):
- self.lcs = LongestCommonSubsequence()
- def distance(self, s0, s1):
- if s0 is None:
- raise TypeError("Argument s0 is NoneType.")
- if s1 is None:
- raise TypeError("Argument s1 is NoneType.")
- if s0 == s1:
- return 0.0
- max_len = int(max(len(s0), len(s1)))
- if max_len == 0:
- return 0.0
- return 1.0 - (1.0 * self.lcs.length(s0, s1)) / max_len
|