def _add_hypotheses_assuming_new_stroke(self,
                                            new_stroke,
                                            stroke_nr,
                                            new_beam):
        """
        Get new guesses by assuming new_stroke is a new symbol.

        Parameters
        ----------
        new_stroke : list of dicts
            A list of dicts [{'x': 12, 'y': 34, 'time': 56}, ...] which
            represent a point.
        stroke_nr : int
            Number of the stroke for segmentation
        new_beam : beam object
        """
        guesses = single_clf.predict({'data': [new_stroke],
                                      'id': None})[:self.m]
        for hyp in self.hypotheses:
            new_geometry = deepcopy(hyp['geometry'])
            most_right = new_geometry
            if len(hyp['symbols']) == 0:
                while 'right' in most_right:
                    most_right = most_right['right']
                most_right['right'] = {'symbol_index': len(hyp['symbols']),
                                       'right': None}
            else:
                most_right = {'symbol_index': len(hyp['symbols']),
                              'right': None}
            for guess in guesses:
                sym = {'symbol': guess['semantics'],
                       'probability': guess['probability']}
                new_seg = deepcopy(hyp['segmentation'])
                new_seg.append([stroke_nr])
                new_sym = deepcopy(hyp['symbols'])
                new_sym.append(sym)
                b = {'segmentation': new_seg,
                     'symbols': new_sym,
                     'geometry': new_geometry,
                     'probability': None
                     }

                # spacial_rels = []  # TODO
                # for s1_indices, s2_indices in zip(b['segmentation'],
                #                                   b['segmentation'][1:]):
                #     tmp = [new_beam.history['data'][el] for el in s1_indices]
                #     s1 = HandwrittenData(json.dumps(tmp))
                #     tmp = [new_beam.history['data'][el] for el in s2_indices]
                #     s2 = HandwrittenData(json.dumps(tmp))
                #     rel = spacial_relationship.estimate(s1, s2)
                #     spacial_rels.append(rel)
                # b['geometry'] = spacial_rels
                new_beam.hypotheses.append(b)
Get new guesses by assuming new_stroke is a new symbol.

        Parameters
        ----------
        new_stroke : list of dicts
            A list of dicts [{'x': 12, 'y': 34, 'time': 56}, ...] which
            represent a point.
        stroke_nr : int
            Number of the stroke for segmentation
        new_beam : beam object