def _parse(self, raw_input_string, g):
     """
     Fills out message meta and frame attributes.
     """
     tokenized_string = g.generate_tokenized_string(raw_input_string)
     parseTree = g.generate_stanford_parse_tree(raw_input_string)
     
     subjects = extract_subject_nodes(parseTree)
     if subjects:
         self.frame['subject'] = [get_node_string(subject)
                                  for subject in subjects]
     words_temporary_pos = extract_close_keywords(
                                    PreferenceMessage.keywords_temporary_pos,
                                    tokenized_string,
                                    2)
     words_temporary_neg = extract_close_keywords(
                                    PreferenceMessage.keywords_temporary_neg,
                                    tokenized_string,
                                    2)
     words_permanent_pos = extract_close_keywords(
                                    PreferenceMessage.keywords_permanent_pos,
                                    tokenized_string,
                                    2)
     words_permanent_neg = extract_close_keywords(
                                    PreferenceMessage.keywords_permanent_neg,
                                    tokenized_string,
                                    2)
     words_temporary = words_temporary_pos + words_temporary_neg
     words_permanent = words_permanent_pos + words_permanent_neg
     if words_temporary and words_permanent:
         # Confused
         # self.frame['temporal'] = None
         # self.frame['word'] = None
         # This check is skipped due to an error in not using the POS
         # when looking up synsets.
         # TODO: Fix (example: fish)
         pass
     if words_temporary:
         self.frame['temporal'] = 'temporary'
         self.frame['word'] = words_temporary[0]
     else: # words_permanent
         self.frame['temporal'] = 'permanent'
         self.frame['word'] = words_permanent[0]
     
     words_pos = words_temporary_pos + words_permanent_pos
     words_neg = words_temporary_neg + words_permanent_neg
     if words_pos and words_neg:
         # Confused
         self.frame['prefer'] = None
     if words_pos:
         self.frame['prefer'] = True
     else: # words_neg
         self.frame['prefer'] = False
    def _parse(self, raw_input_string, g):
        """
        Fills out message meta and frame attributes.
        """
        tokenized_string = g.generate_tokenized_string(raw_input_string)
        parseTree = g.generate_stanford_parse_tree(raw_input_string)

        subjects = extract_subject_nodes(parseTree)
        if subjects:
            self.frame['subject'] = [
                get_node_string(subject) for subject in subjects
            ]
        words_temporary_pos = extract_close_keywords(
            PreferenceMessage.keywords_temporary_pos, tokenized_string, 2)
        words_temporary_neg = extract_close_keywords(
            PreferenceMessage.keywords_temporary_neg, tokenized_string, 2)
        words_permanent_pos = extract_close_keywords(
            PreferenceMessage.keywords_permanent_pos, tokenized_string, 2)
        words_permanent_neg = extract_close_keywords(
            PreferenceMessage.keywords_permanent_neg, tokenized_string, 2)
        words_temporary = words_temporary_pos + words_temporary_neg
        words_permanent = words_permanent_pos + words_permanent_neg
        if words_temporary and words_permanent:
            # Confused
            # self.frame['temporal'] = None
            # self.frame['word'] = None
            # This check is skipped due to an error in not using the POS
            # when looking up synsets.
            # TODO: Fix (example: fish)
            pass
        if words_temporary:
            self.frame['temporal'] = 'temporary'
            self.frame['word'] = words_temporary[0]
        else:  # words_permanent
            self.frame['temporal'] = 'permanent'
            self.frame['word'] = words_permanent[0]

        words_pos = words_temporary_pos + words_permanent_pos
        words_neg = words_temporary_neg + words_permanent_neg
        if words_pos and words_neg:
            # Confused
            self.frame['prefer'] = None
        if words_pos:
            self.frame['prefer'] = True
        else:  # words_neg
            self.frame['prefer'] = False
    def _parse(self, raw_input_string, g):
        """
        Fills out message meta and frame attributes
        """
        tokenized_string = g.generate_tokenized_string(raw_input_string)

        wordActionMap = {'exit':SystemMessage.exit_keywords, 'restart':SystemMessage.restart_keywords}
        for action, keywords in wordActionMap.items():
            matches = extract_close_keywords(keywords, tokenized_string, 3)
            if matches: # synset of keyword was found in the sentence
                self.frame['action'] = action
Ejemplo n.º 4
0
    def _parse(self, raw_input_string, g):
        """
        Fills out message meta and frame attributes
        """
        tokenized_string = g.generate_tokenized_string(raw_input_string)

        wordActionMap = {
            'exit': SystemMessage.exit_keywords,
            'restart': SystemMessage.restart_keywords
        }
        for action, keywords in wordActionMap.items():
            matches = extract_close_keywords(keywords, tokenized_string, 3)
            if matches:  # synset of keyword was found in the sentence
                self.frame['action'] = action