Exemplo n.º 1
0
def process_question(question: str, nlp_toolkit: NLPToolkit) -> QPResult:
    # start logging
    Logger.info('started')
    start = datetime.now()

    # start question processing
    clf_name = get_clf_name(question)
    clf = get_clf_from_disk(clf_name)
    label = get_predicted_label(question, clf)
    keywords = nlp_toolkit.get_headwords(question)
    # keywords = get_key_words(question)
    # print(keywords)
    # print(AnswerType[label.upper()])

    # end logging
    end = datetime.now()
    diff = end - start
    Logger.info('AnswerType: ' + str(AnswerType[label]))
    Logger.info('finished (' + str(diff.seconds) + '.' +
                str(diff.microseconds)[0:2] + ' s)')
    Logger.small_seperator()

    return QPResult(QuestionModel(keywords, question), AnswerType[label])
    Logger.error('Dataset: ' + title)

    for paragraph in dataset['paragraphs'][:5]:
        for question_answer_set in paragraph['qas']:
            Logger.error(
                '####################################################')
            Logger.error('Question ' + str(question_counter))
            Logger.error('')
            question_counter += 1
            question = question_answer_set['question']
            correct_answers = question_answer_set['answers']
            Logger.error(question)

            # answer = process_answer_question(question)

            keywords = nlp.get_headwords(question)
            Logger.error('Headwords: ' + ', '.join(keywords))
            keywords.append(title_ext)
            qm = QuestionModel(keywords, question)
            # error("Keywords: " + ', '.join(keywords))
            docs = receive_docs(qm, nlp)
            Logger.error("Correct Doc: " + title_ext)

            found = False
            for idx, doc in enumerate(docs.docs[:5]):
                if doc.title in title_ext:
                    correct_answer_dict[idx] += 1
                    found = True
                    break

            if not found: