Beispiel #1
0
 def test_utterance_patterns_with_range_and_non_range(self) -> None:
     artists = ('the beatles', 'kanye', 'nico', 'tom waits')
     dynamic_token_patterns_map = {'ARTIST': artists}
     pattern_def = _load_pattern_def(
         self._base_dir / 'utterance_patterns_with_range_and_non_range.yml')
     _, generator = expand(
         pattern_def, dynamic_token_patterns_map=dynamic_token_patterns_map)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     expected_utterance_combo = (
         (('she wants', ), ),
         (('she wants', ), ('to play', ), artists),
         (('she wants', ), ('to play', ), artists, ('to play', ), artists),
         (('she wants', ), ('to play', ), artists, ('to play', ), artists,
          ('to play', ), artists),
     )
     expected_tokens = (
         ('START', ),
         ('START', 'PLAY', 'ARTIST'),
         ('START', 'PLAY', 'ARTIST', 'PLAY', 'ARTIST'),
         ('START', 'PLAY', 'ARTIST', 'PLAY', 'ARTIST', 'PLAY', 'ARTIST'),
     )
     expected_groups = (
         (('None', 1), ),
         (('None', 1), ('PLAY_ARTIST', 2)),
         (('None', 1), ('PLAY_ARTIST', 2), ('PLAY_ARTIST', 2)),
         (('None', 1), ('PLAY_ARTIST', 2), ('PLAY_ARTIST', 2),
          ('PLAY_ARTIST', 2)),
     )
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)
Beispiel #2
0
 def test_static_and_base_tokens(self) -> None:
     pattern_def = _load_pattern_def(self._base_dir /
                                     'static_and_base_tokens.yml')
     _, generator = expand(pattern_def)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     expected_utterance_combo = ((('he will want', 'she will want'),
                                  ('to play', 'to listen')), )
     expected_tokens = (('START', 'PLAY'), )
     expected_groups = ((('None', 1), ('None', 1)), )
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)
Beispiel #3
0
 def test_dynamic_token_patterns_only(self) -> None:
     dynamic_token_patterns_map = {'ARTIST': ('the beatles', 'kanye')}
     pattern_def = _load_pattern_def(self._base_dir /
                                     'dynamic_token_patterns_only.yml')
     expected_utterance_combo = ((('the beatles', 'kanye'), ), )
     expected_tokens = (('ARTIST', ), )
     expected_groups = (((('None', 1)), ), )
     _, generator = expand(
         pattern_def, dynamic_token_patterns_map=dynamic_token_patterns_map)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)
Beispiel #4
0
 def test_dynamic_and_static_token_patterns(self) -> None:
     dynamic_token_patterns_map = {'ARTIST': ('the beatles', 'kanye')}
     pattern_def = _load_pattern_def(
         self._base_dir / 'dynamic_and_static_token_patterns.yml')
     _, generator = expand(
         pattern_def, dynamic_token_patterns_map=dynamic_token_patterns_map)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     expected_utterance_combo = ((('he will want', 'she will want'),
                                  ('to play', 'to listen'), ('the beatles',
                                                             'kanye')), )
     expected_tokens = (('START', 'PLAY', 'ARTIST'), )
     expected_groups = ((('None', 1), ('None', 1), ('None', 1)), )
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)
Beispiel #5
0
 def test_multiple_optional_utternace_pattern(self) -> None:
     pattern_def = _load_pattern_def(
         self._base_dir / 'multiple_optional_utternace_pattern.yml')
     _, generator = expand(pattern_def)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     expected_utterance_combo = ((('hi', ), ('she will want', ),
                                  ('to play', ), ('nico', )),
                                 (('hi', ), ('she will want', ),
                                  ('to play', ), ('tom waits', )))
     expected_tokens = (('WAKE', 'START', 'PLAY', 'ARTIST_1'),
                        ('WAKE', 'START', 'PLAY', 'ARTIST_2'))
     expected_groups = ((('None', 1), ('PLAY_PHRASE', 2), ('None', 1)),
                        (('None', 1), ('PLAY_PHRASE', 2), ('None', 1)))
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)
Beispiel #6
0
 def test_nested_group_tokens(self) -> None:
     pattern_def = _load_pattern_def(self._base_dir /
                                     'nested_group_tokens.yml')
     _, generator = expand(pattern_def)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     expected_utterance_combo = ((('hi', ), ('she wants', ), ('to play',
                                                              'to listen'),
                                  ('to play', 'to listen')), )
     expected_tokens = (('WAKE', 'START', 'PLAY', 'PLAY'), )
     expected_groups = ((
         ('None', 1),
         ('PLAY_PHRASE', 3),
     ), )
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)
Beispiel #7
0
 def test_intents_and_entities(self) -> None:
     pattern_def = _load_pattern_def(self._base_dir /
                                     'intents_and_entities.yml')
     _, generator = expand(pattern_def)
     actual_utterance_combo, actual_tokens, actual_groups = zip(*generator)
     expected_utterance_combo = ((('he will want', 'she will want'),
                                  ('to play', 'to listen'),
                                  ('nico', 'kanye', 'tom waits')),
                                 (('he will want', 'she will want'),
                                  ('to play', 'to listen'),
                                  ('sunday morning', 'all falls down',
                                   'table top joe')))
     expected_tokens = (('START', 'PLAY', 'ARTIST'), ('START', 'PLAY',
                                                      'SONG'))
     expected_groups = ((('None', 1), ('None', 1), ('None', 1)),
                        (('None', 1), ('None', 1), ('None', 1)))
     pairs = [(actual_utterance_combo, expected_utterance_combo),
              (actual_tokens, expected_tokens),
              (actual_groups, expected_groups)]
     compare_all_pairs(self, pairs)