docs: def merge_segmentations(segs1, segs2, strokes=None):
      """
      Parameters
      ----------
      segs1 : a list of tuples
          Each tuple is a segmentation with its score
      segs2 : a list of tuples
          Each tuple is a segmentation with its score
      strokes : list of stroke names for segs2
  
      Returns
      -------
      list of tuples :
          Segmentations with their score, combined from segs1 and segs2
      """
      def translate(segmentation, strokes):
          t = []
          for symbol in segmentation:
              symbol_new = []
              for stroke in symbol:
                  symbol_new.append(strokes[stroke])
              t.append(symbol_new)
          return t
      if strokes is None:
          strokes = [i for i in range(len(segs2[0][0]))]
      topf = partitions.TopFinder(500)
      for s1, s2 in itertools.product(segs1, segs2):
          topf.push(s1[0]+translate(s2[0], strokes), s1[1]*s2[1])
      return list(topf)