コード例 #1
0
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
コード例 #2
0
 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)
コード例 #3
0
 def test_pp_submarino2(self):
     palavra = 'submarino verde amarelo'
     frase = 'submarino verde'
     esperado = {}
     self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
コード例 #4
0
 def test_pf5(self):
     palavra = "Americanas"
     frase = "Americanas teste"
     esperado = {'eh_redundante': True, 'quem': frase}
     self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
コード例 #5
0
 def test_pf4(self):
     palavra = "João conhece Maria"
     frase = "João Maria"
     esperado = {}
     self.assertEqual(redun_palavra_frase(palavra, frase), esperado)
コード例 #6
0
 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)