def test_skillShouldRecognizeCommand(self): verbs = ["use"] for verb in verbs: ud = ParsedUniversalDependencies(verb=verb) skill_input = SkillInput(ud, False) self.assertTrue( self.skill.matches_command(skill_input), f"ChangeAssistantVoiceSkill did not recognize verb='{verb}'")
def test_skillShouldRecognizeCommand(self): verbs = ["find", "where is"] for verb in verbs: ud = ParsedUniversalDependencies(verb=verb) skill_input = SkillInput(ud, False) self.assertTrue( self.skill.matches_command(skill_input), f"RoomFinderSkill did not recognize verb='{verb}'")
def test_skillShouldRecognizeCommand(self): verbs = ["schedule", "remind", "remind about", "plan"] for verb in verbs: ud = ParsedUniversalDependencies(verb=verb) skill_input = SkillInput(ud, False) self.assertTrue( self.skill.matches_command(skill_input), f"AddCalendarEventSkill did not recognize verb='{verb}'")
def test_skillShouldRecognizeCommand(self): verbs = ["what is", "tell"] nouns = ["time"] for verb in verbs: for noun in nouns: ud = ParsedUniversalDependencies(verb=verb, noun=noun) skill_input = SkillInput(ud, False) self.assertTrue( self.skill.matches_command(skill_input), f"TellTimeSkill did not recognize verb='{verb}' and noun='{noun}'")
def test_skillShouldRecognizeCommand(self): verbs = [ "email", "compose", "compose to", "send", "send to", "write", "write to" ] for verb in verbs: ud = ParsedUniversalDependencies(verb=verb) skill_input = SkillInput(ud, False) self.assertTrue(self.skill.matches_command(skill_input), f"SendEmailSkill did not recognize verb='{verb}'")
def test_skillShouldRecognizeCommand(self): verbs = [ "start", "open", "go", "go to", "browse", "browse to", "launch", "take to", "show" ] for verb in verbs: ud = ParsedUniversalDependencies(verb=verb) skill_input = SkillInput(ud, False) self.assertTrue( self.skill.matches_command(skill_input), f"OpenWebsiteSkill did not recognize verb='{verb}'")
def __parse_tokens(sentence: spacy.tokens.Doc) -> ParsedUniversalDependencies: """Parses parts of speech from the provided tokens.""" #tokenize # remove the stopwards, convert to lowercase #bi/n-grams adj = __get_word_by_ud_pos(sentence, "ADJ") adp = __get_word_by_ud_pos(sentence, "ADP") adv = __get_word_by_ud_pos(sentence, "ADV") aux = __get_word_by_ud_pos(sentence, "AUX") verb = __get_word_by_ud_pos(sentence, "VERB") cconj = __get_word_by_ud_pos(sentence, "CCONJ") det = __get_word_by_ud_pos(sentence, "DET") intj = __get_word_by_ud_pos(sentence, "INTJ") noun = __get_word_by_ud_pos(sentence, "NOUN") num = __get_word_by_ud_pos(sentence, "NUM") part = __get_word_by_ud_pos(sentence, "PART") pron = __get_word_by_ud_pos(sentence, "PRON") propn = __get_word_by_ud_pos(sentence, "PROPN") punct = __get_word_by_ud_pos(sentence, "PUNCT") sconj = __get_word_by_ud_pos(sentence, "SCONJ") sym = __get_word_by_ud_pos(sentence, "SYM") verb = __get_word_by_ud_pos(sentence, "VERB") x = __get_word_by_ud_pos(sentence, "X") return ParsedUniversalDependencies( adj = adj, adp = adp, adv = adv, aux = aux, cconj = cconj, det = det, intj = intj, noun = noun, num = num, part = part, pron = pron, propn = propn, punct = punct, sconj = sconj, sym = sym, verb = verb, x = x)
AddCalendarEventSkill(), TellScheduleSkill(), TellDateSkill(), TellTimeSkill(), ChangeAssistantVoiceSkill(), ChangeUserNameSkill() ] for available_skill in available_skills: if available_skill.matches_command(skill_input): return available_skill return None if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('verb', type=str, help='Assistant database command.') parser.add_argument('verb_object', type=str, help='Object passed to command.') parser.add_argument('-v', '--verbose', help='Explain what action is being taken.', action='store_true') args = parser.parse_args() if args.verbose: print(sys.version) ud = ParsedUniversalDependencies(verb=args.verb, noun=args.verb_object) identify_and_run_command(ud, args.verbose) exit()