12345678910111213141516171819202122232425 |
- from .string_distance import NormalizedStringDistance
- from .string_similarity import NormalizedStringSimilarity
- from .levenshtein import Levenshtein
- class NormalizedLevenshtein(NormalizedStringDistance, NormalizedStringSimilarity):
- def __init__(self):
- self.levenshtein = Levenshtein()
- 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
- m_len = max(len(s0), len(s1))
- if m_len == 0:
- return 0.0
- return self.levenshtein.distance(s0, s1) / m_len
- def similarity(self, s0, s1):
- return 1.0 - self.distance(s0, s1)
|