def test_pursuit_preposition_under_learner(language_mode, learner): ball = standard_object("ball", BALL) table = standard_object("table", TABLE) language_generator = phase1_language_generator(language_mode) under_train_curriculum = phase1_instances( "Preposition Under Unit Train", situations=sampled( _under_template(ball, table, immutableset(), is_training=True, is_distal=True), chooser=PHASE1_CHOOSER_FACTORY(), ontology=GAILA_PHASE_1_ONTOLOGY, max_to_sample=10, block_multiple_of_the_same_type=True, ), language_generator=language_generator, ) under_test_curriculum = phase1_instances( "Preposition Under Unit Test", situations=sampled( _under_template(ball, table, immutableset(), is_training=False, is_distal=True), chooser=PHASE1_CHOOSER_FACTORY(), ontology=GAILA_PHASE_1_ONTOLOGY, max_to_sample=1, block_multiple_of_the_same_type=True, ), language_generator=language_generator, ) processing_learner = learner(language_mode) for ( _, linguistic_description, perceptual_representation, ) in under_train_curriculum.instances(): processing_learner.observe( LearningExample(perceptual_representation, linguistic_description)) for ( _, test_linguistic_description, test_perceptual_representation, ) in under_test_curriculum.instances(): descriptions_from_learner = processing_learner.describe( test_perceptual_representation) gold = test_linguistic_description.as_token_sequence() assert descriptions_from_learner assert gold in [ desc.as_token_sequence() for desc in descriptions_from_learner ]
def _make_m6_under_curriculum( num_samples: Optional[int], noise_objects: Optional[int], language_generator: LanguageGenerator[HighLevelSemanticsSituation, LinearizedDependencyTree], ) -> Phase1InstanceGroup: return phase1_instances( "Preposition under", situations=chain(*[ sampled( _under_template( object_1, object_2, make_noise_objects(noise_objects), is_training=True, is_distal=True, ), chooser=PHASE1_CHOOSER_FACTORY(), ontology=GAILA_PHASE_1_ONTOLOGY, max_to_sample=num_samples if num_samples else 1, block_multiple_of_the_same_type=True, ) for object_1 in r.sample(SMALL_OBJECT_VARS, 3) for object_2 in r.sample(LARGE_OBJECT_VARS, 3) ]), perception_generator=GAILA_M6_PERCEPTION_GENERATOR, language_generator=language_generator, )
def test_subset_preposition_under(language_mode, learner): ball = standard_object("ball", BALL) table = standard_object("table", TABLE) run_preposition_test( learner(language_mode), _under_template(ball, table, immutableset(), is_training=True, is_distal=True), language_generator=phase1_language_generator(language_mode), )
def test_pursuit_preposition_under_learner(language_mode): rng = random.Random() rng.seed(0) learner = PrepositionPursuitLearner( learning_factor=0.5, graph_match_confirmation_threshold=0.7, lexicon_entry_threshold=0.7, rng=rng, smoothing_parameter=0.001, ontology=GAILA_PHASE_1_ONTOLOGY, object_recognizer=LANGUAGE_MODE_TO_OBJECT_RECOGNIZER[language_mode], language_mode=language_mode, ) # type: ignore ball = standard_object("ball", BALL) table = standard_object("table", TABLE) language_generator = phase1_language_generator(language_mode) under_train_curriculum = phase1_instances( "Preposition Under Unit Train", situations=sampled( _under_template(ball, table, immutableset(), is_training=True, is_distal=True), chooser=PHASE1_CHOOSER_FACTORY(), ontology=GAILA_PHASE_1_ONTOLOGY, max_to_sample=10, ), language_generator=language_generator, ) under_test_curriculum = phase1_instances( "Preposition Under Unit Test", situations=sampled( _under_template(ball, table, immutableset(), is_training=False, is_distal=True), chooser=PHASE1_CHOOSER_FACTORY(), ontology=GAILA_PHASE_1_ONTOLOGY, max_to_sample=1, ), language_generator=language_generator, ) for ( _, linguistic_description, perceptual_representation, ) in under_train_curriculum.instances(): learner.observe( LearningExample(perceptual_representation, linguistic_description)) for ( _, test_linguistic_description, test_perceptual_representation, ) in under_test_curriculum.instances(): descriptions_from_learner = learner.describe( test_perceptual_representation) gold = test_linguistic_description.as_token_sequence() assert descriptions_from_learner assert [ desc.as_token_sequence() for desc in descriptions_from_learner ][0] == gold