예제 #1
0
    def test_get_answer(self):
        from ml_models.elastic_search_baseline import get_answer
        with patch('support_model.elastic_search_baseline') as es_mock:
            es_mock.get_answer = get_answer
            from support_model import get_answer
            ans = get_answer('Big data examples')
            self.assertLessEqual(len(ans), 4)

            ans2 = get_answer('asfdsdffhjgjkgjhfghdfhgfgsdfasdfdfg')
            self.assertEqual(ans2, ['not found :(\nPlease paraphrase your query'])
예제 #2
0
def get_answer(query, use_lower=True, use_keywords=False, use_remove_stopwords=False, model_name=MODEL_NAME,
               use_remove_slack_commands=True
               ):
    if use_lower:
        query = query.lower()
    if use_keywords:
        query = get_keywords(query)
    if use_remove_stopwords:
        query = remove_stop_words_func(query)
    if use_remove_slack_commands:
        query = remove_slack_commands(query)

    try:
        answer_list = []
        if model_name == ModelNames.ELASTIC:
            answer_list = elastic_search_baseline.get_answer(query)
        if model_name == ModelNames.BERT:
            answer_list = bert_model.get_answer(query)
        if model_name == ModelNames.BPE:
            answer_list = bpe_model.get_answer(query)
        if model_name == ModelNames.USE:
            answer_list = use_model.get_answer(query)
        return answer_list
    except Exception as ex:
        print('exception:', ex)
        return [{'text': "not found :(\nPlease paraphrase your query",
                 'channel_id': '0',
                 'timestamp': '0'}]
예제 #3
0
 def test_bert_ans(self):
     from ml_models.bert_model import get_answer
     for q in self.questions:
         ans_list = get_answer(q)
         print(q)
         for ans in ans_list:
             print('\t\t', ans)
         self.assertTrue(len(ans_list) > 0)
예제 #4
0
 def check_elastic(self):
     try:
         from ml_models.elastic_search_baseline import get_answer
         ans = get_answer('data science meetups')
         self.log('elastic passed')
         status = True
     except:
         status = False
         self.log('elastic failed')
     return status
예제 #5
0
def get_answer(query, use_lower=True, use_keywords=False, use_remove_stopwords=False, model_name=MODEL_NAME):
    if use_lower:
        query = query.lower()
    if use_keywords:
        query = get_keywords(query)
    if use_remove_stopwords:
        query = remove_stop_words_func(query)
    try:
        if model_name == ModelNames.ELASTIC:
            return elastic_search_baseline.get_answer(query)
        if model_name == ModelNames.BERT:
            return bert_emb_baseline.get_answer(query)
        if model_name == ModelNames.BPE:
            return bpe_baseline.get_answer(query)
        if model_name == ModelNames.TFIDF:
            return tfidf_baseline.get_answer(query)
    except Exception as ex:
        print(ex)
        return "not found :(\nPlease paraphrase your query"