docs: def _nearby_levenshtein_distance(s1, s2):
      '''
      使用空间距离近的词汇优化编辑距离计算
      '''
      s1_len, s2_len = len(s1), len(s2)
      maxlen = s1_len
      if s1_len == s2_len:
          first, second = sorted([s1, s2])
      elif s1_len < s2_len:
          first = s1
          second = s2
          maxlen = s2_len
      else:
          first = s2
          second = s1
  
      ft = set() # all related words with first sentence 
      for x in first:
          ft.add(x)
          n, _ = nearby(x)
          for o in n[:10]:
              ft.add(o)
      
      scores = []
      for x in second:
          choices = [_levenshtein_distance(x, y) for y in ft]
          if len(choices) > 0: scores.append(max(choices))
  
      s = np.sum(scores) / maxlen if len(scores) > 0 else 0
      return s