def redundancia(termo, tipo, termos): ''' Pega a lista de termos, verifica se tem redundancia. Se sim, retorna a mensagem de erro. Args: termo (str): Termo a ser analisado. tipo (str): Tipo, se 'A' palavra ou 'R' frase. termos (list): Lista de termos a serem comparados. Returns: str: Retorna a mensagem de erro. ''' lista = [] # Se o termo for uma frase 'R' de uma palavra só, então converte para palavra. if tipo == 'R': if len(remover_aspas(termo).split()) == 1: tipo = 'A' termo = remover_aspas(termo) if tipo == 'A': for i, _termo in enumerate(termos): meu_termo = remover_aspas(_termo['termos']) _tipo = _termo['tipo'] # print(i, _termo) # print(i, meu_termo) if _tipo == 'A': # print('caiu no palavra palavra') resposta = redun_palavra_palavra(termo, meu_termo) else: # print('caiu no palavra frase') resposta = redun_palavra_frase(termo, meu_termo) # print(i, 'antes', resposta) if resposta: lista.append(resposta) # print(i, 'depois', resposta) else: # Se tipo for igual a 'R', considerando a query. for _termo in termos: meu_termo = remover_aspas(_termo['termos']) _tipo = _termo['tipo'] if _tipo == 'R': resposta = redun_frase_frase(remover_aspas(termo), meu_termo) else: # Se for 'A', então troca palavra e frase de lugar # pra usar a mesma função. tmp_palavra = meu_termo tmp_frase = remover_aspas(termo) resposta = redun_palavra_frase(tmp_palavra, tmp_frase) if resposta: lista.append(resposta) print('\n') print('lista') print(lista) if lista: msg_error = "O termo '%s' é redundante." % lista[0]['quem'] return msg_error return
def test_pp_submarino3(self): palavra = 'submarino verde' frase = 'submarino verde amarelo' esperado = {'eh_redundante': True, 'quem': frase} self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
def test_pp_submarino2(self): palavra = 'submarino verde amarelo' frase = 'submarino verde' esperado = {} self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
def test_pf5(self): palavra = "Americanas" frase = "Americanas teste" esperado = {'eh_redundante': True, 'quem': frase} self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
def test_pf4(self): palavra = "João conhece Maria" frase = "João Maria" esperado = {} self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
def test_pf3(self): palavra = "João Maria" frase = "João conhece Maria" esperado = {'eh_redundante': True, 'quem': frase} self.assertEqual(redun_palavra_frase(palavra, frase), esperado)