Exemplo n.º 1
0
    def test_get_best_merge_candidate(self):
        learner = TemplateLatticeLearner(minimal_variables=True,
                                         words_per_leaf_slot=2)
        template_1 = Template.from_string("The solar system is [SLOT]")
        template_1_point = Template.from_string("The solar system is [SLOT].")
        template_2 = Template.from_string("[SLOT], solar system!")

        template_3 = Template.from_string("The earth is [SLOT]")
        template_3_point = Template.from_string("The earth is [SLOT].")

        merge_1_2 = learner._get_best_merge_candidate(template_1, template_2)
        self.assertEqual(
            Template.from_string("[SLOT] solar system [SLOT]"),
            merge_1_2.get_merged_template(minimal_variables=True),
        )
        self.assertEqual(
            3,
            merge_1_2.get_distance(),
        )

        merge_1_3 = learner._get_best_merge_candidate(template_1, template_3)
        self.assertEqual(
            Template.from_string("The [SLOT] is [SLOT]"),
            merge_1_3.get_merged_template(minimal_variables=True),
        )
        self.assertEqual(
            3,
            merge_1_3.get_distance(),
        )

        # With punctuation version
        merge_1_2p = learner._get_best_merge_candidate(template_1_point,
                                                       template_2)
        self.assertEqual(
            Template.from_string("[SLOT] solar system [SLOT]"),
            merge_1_2p.get_merged_template(minimal_variables=True),
        )
        self.assertEqual(
            4,
            merge_1_2p.get_distance(),
        )

        merge_1_3p = learner._get_best_merge_candidate(template_1_point,
                                                       template_3_point)
        self.assertEqual(
            Template.from_string("The [SLOT] is [SLOT]."),
            merge_1_3p.get_merged_template(minimal_variables=True),
        )
        self.assertEqual(
            3,
            merge_1_3p.get_distance(),
        )
Exemplo n.º 2
0
    def test_min_empty_sequence_disallow_empty_longer_2(self):
        learner = TemplateLatticeLearner(minimal_variables=True,
                                         allow_empty_string=False)
        template_1 = Template.from_string("x y z a a b c")
        template_2 = Template.from_string("x y z b c d")
        merge = learner._get_best_merge_candidate(template_1, template_2)

        self.assertEqual(Template.from_string("x y z [SLOT]"),
                         merge.get_merged_template())
Exemplo n.º 3
0
    def test_min_empty_sequence_longer(self):
        learner = TemplateLatticeLearner(minimal_variables=True,
                                         words_per_leaf_slot=2,
                                         allow_empty_string=True)
        template_1 = Template.from_string(
            "who sang i want to be with you everywhere")
        template_2 = Template.from_string(
            "who sang i only want to be with you")

        merge = learner._get_best_merge_candidate(template_1, template_2)
        self.assertEqual(
            Template.from_string(
                "who sang i [SLOT] want to be with you [SLOT]"),
            merge.get_merged_template())
Exemplo n.º 4
0
    def test_get_best_merge_candidate_hello_world(self):
        learner = TemplateLatticeLearner(minimal_variables=True,
                                         words_per_leaf_slot=2)
        template_1 = Template.from_string("hello world")
        template_2 = Template.from_string("hi solar system")

        merge_1_2 = learner._get_best_merge_candidate(template_1, template_2)
        self.assertEqual(
            Template.from_string("[SLOT]"),
            merge_1_2.get_merged_template(minimal_variables=True),
        )
        self.assertEqual(
            4,
            merge_1_2.get_distance(),
        )