예제 #1
0
    def full_answer(self, question_text, top_number=10):
        """
        get answer collection for the question
        :param question_text: question text
        :return:  a full answer collection
        """
        question = Question(question_text)
        print(question_text)
        question_with_intent = self.template_analyzer.generate_question_with_intent(
            question)
        if question_with_intent is None:
            question_with_intent = self.dialogflow_analyzer.generate_question_with_intent(
                question)
        answer_collection = self.solver_collection.solve_by_solvers(
            question_with_intent)
        if answer_collection:
            answer_collection = answer_collection.get_top_answers(
                top_number=top_number)
        else:
            answer_collection = AnswerCollection()
        if len(answer_collection.answer_list) == 0:
            answer_collection.answer_type = AnswerCollection.ANSWER_TYPE_DEFAULT
            text = "I can't answer this quesion!"
            answer = Answer(answer_text=text, score=1.0, node=None)
            answer_collection.add(answer)

        return answer_collection
예제 #2
0
 def get_answer_collection(self, question_with_intent):
     answer_collection = AnswerCollection(
         AnswerCollection.ANSWER_TYPE_DEFAULT)
     intent = question_with_intent.intent
     text = intent.get_slot_value("Text")
     answer = Answer(answer_text=text, score=1.0, node=None)
     answer_collection.add(answer)
     return answer_collection
예제 #3
0
    def get_answer_collection(self, question_with_intent):
        answer_collection = AnswerCollection(AnswerCollection.ANSWER_TYPE_LIST)
        intent = question_with_intent.intent
        feature = intent.get_slot_value("Feature")
        node_linking_record_list = self.graph_accessor.search_entity_by_feature(
            feature)
        self.add_answer_to_list(answer_collection, node_linking_record_list)

        return answer_collection
예제 #4
0
    def get_answer_collection(self, question_with_intent):
        answer_collection = AnswerCollection(AnswerCollection.ANSWER_TYPE_LIST)
        intent = question_with_intent.intent
        entity = intent.get_slot_value("Entity")
        node_linking_record_list = self.graph_accessor.search_entity_by_relation(
            entity, "belong to")
        self.add_answer_to_list(answer_collection, node_linking_record_list)

        return answer_collection
예제 #5
0
    def get_answer_collection(self, question_with_intent):
        answer_collection = AnswerCollection(
            AnswerCollection.ANSWER_TYPE_SINGLE)
        intent = question_with_intent.intent
        self.entity = intent.get_slot_value("Entity")
        node_linking_record_list = self.graph_accessor.entity_linking_by_fulltext_search(
            self.entity)
        self.add_answer_to_list(answer_collection, node_linking_record_list)

        return answer_collection
예제 #6
0
    def get_answer_collection(self, question_with_intent):
        answer_collection = AnswerCollection(AnswerCollection.ANSWER_TYPE_LIST)

        intent = question_with_intent.intent
        function_str = intent.get_slot_value("Function")

        node_linking_record_list = self.graph_accessor.entity_linking_by_function_search(
            function_str)
        self.add_answer_to_list(answer_collection, node_linking_record_list)

        return answer_collection