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(), )
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())
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())
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(), )