Esempio n. 1
0
def analisar_criterio():
    dados = get_post(request)
    _texto = str(dados.get("texto", ""))
    _criterios = str(dados.get("criterio", ""))
    _detalhar = str(dados.get("detalhar", "")) not in ("", "0", "False")
    if not _criterios:
        _criterios = str(dados.get("criterios", ""))
    #print('Texto: ', type(_texto),_texto)
    #print('Critério: ', type(_criterios),_criterios)
    pb = PesquisaBR(texto=_texto, criterios=_criterios, print_debug=False)
    if _detalhar:
        return jsonify({
            'retorno': pb.retorno(),
            'criterios': pb.criterios,
            'criterios_aon': pb.criterios_and_or_not,
            'texto': ' '.join(pb.tokens_texto)
        })
    return jsonify({'retorno': pb.retorno()})
Esempio n. 2
0
def testar_criterios():
    try:
        global EXEMPLOS
        title = "PesquisaBR: Análise de criterios"
        dados = get_post(request)
        texto_analise = str(dados.get("texto_analise", ""))
        texto_criterio = str(dados.get("texto_criterio", ""))
        carregar_exemplo = int(dados.get("exemplo", -1))
        if carregar_exemplo >= 0 and len(EXEMPLOS) > carregar_exemplo:
            exemplo = EXEMPLOS[carregar_exemplo]
            texto_analise = exemplo['texto'] if exemplo.get(
                'texto') else texto_analise
            texto_criterio = exemplo['criterios'] if exemplo.get(
                'criterios') else texto_criterio
        criterio_ok = ''
        texto_processado = ''
        texto_grifado = ''
        criterio_processado = ''
        _tempo = ''
        if texto_analise or texto_criterio:
            _ini = datetime.now()
            pb = PesquisaBR(texto=texto_analise, criterios=texto_criterio)
            if texto_analise:
                texto_processado = ' '.join(pb.tokens_texto)
            if texto_criterio:
                criterio_processado = pb.criterios
            if texto_analise and texto_criterio:
                criterio_ok = 'SIM' if pb.retorno() else 'NAO'
            texto_grifado = Markup(pb.grifar_criterios(texto=texto_analise))
            _tempo = round((datetime.now() - _ini).total_seconds(), 3)
            _tempo = f'{_tempo:.3f} s'
        return render_template("aplicar_criterio.html",
                               texto_analise=texto_analise,
                               texto_criterio=texto_criterio,
                               criterio_ok=criterio_ok,
                               texto_processado=texto_processado,
                               texto_grifado=texto_grifado,
                               criterio_processado=criterio_processado,
                               tempo=_tempo,
                               ativo_criterios='active',
                               title=title,
                               exemplos_criterios=EXEMPLOS)
    except TemplateNotFound as e:
        return render_template_string(f'Página não encontrada: {e.message}')
Esempio n. 3
0
def regra_valida(txt_regra, rotulo):
    if (not txt_regra) or (txt_regra[:2] in {'r:', 'R:'}):
        return True
    pb = PesquisaBR(texto='', criterios=txt_regra)
    if pb.erros:
        print(f'**ERRO: REGRA inválida: "{rotulo}"')
        print(f'        texto de regra: {txt_regra}')
        print(f'                 erro : {pb.erros}')
        return False
    print(f'REGRA OK: rótulo "{rotulo}" com o texto de regra: {txt_regra}')
    return True
Esempio n. 4
0
def get_health():
    _criterios = 'casas ADJ2 papeis PROX10 legal PROX10 seriado'
    _texto = 'a casa de papel é um seriado muito legal'
    pb = PesquisaBR(texto=_texto, criterios=_criterios, print_debug=False)
    if not pb.retorno():
        print('\n\n')
        print('=========================================================')
        print('=    ERRO NO CRITÉRIO DE PESQUISA DO HEALTH CHECK       =')
        pb.print_resumo()
        print('=========================================================')
        print('\n\n')
        raise Exception(
            f'Health check - ERRO na avaliação do critério de pesquisa')
    print('\n===== HEALTH CHECK OK =====\n')
    return jsonify({
        'ok': True,
        'criterios': pb.criterios,
        'criterios_aon': pb.criterios_and_or_not,
        'texto': pb.texto
    })
Esempio n. 5
0
def teste_mapa():
    pbmem = PesquisaBRMemSQL(db_instance=Db_Instance())
    consulta = "'dano moral' adj10 estetico nao presumido"
    pb = PesquisaBR(criterios=consulta)
    mapa = pbmem.carregar_mapa(tipo_documento='diversos', id_documento=2982175)
    pb.novo_mapa_texto(mapa_texto=mapa)
    pb.print_resumo()
Esempio n. 6
0
def testar_regras():
    try:
        title = "PesquisaBR: Análise de regras"
        dados = get_post(request)
        #print(dados)
        texto_analise = str(dados.get("texto_analise", ""))
        texto_processado = ''
        carregar_exemplo = int(dados.get("exemplo", -1))
        if carregar_exemplo >= 0 and len(EXEMPLOS) > carregar_exemplo:
            exemplo = EXEMPLOS[carregar_exemplo]
            texto_analise = exemplo['texto'] if exemplo.get(
                'texto') else texto_analise
        rotulos_retornados = ''
        tags = str(dados.get("tags", ""))
        grupo = str(dados.get("grupo", ""))
        qtd_regras = 0
        _tempo = ''
        rotulos_retornados = []
        if texto_analise:
            carregar_regras()
            global REGRAS
            pb = PesquisaBR(texto=texto_analise)
            texto_processado = ' '.join(pb.tokens_texto)
            _ini = datetime.now()
            pbr = RegrasPesquisaBR(regras=[], print_debug=False)
            pbr.regras = regras_filtradas(tags_lista=tags, grupo=grupo)
            qtd_regras = len(pbr.regras)
            res = pbr.aplicar_regras(texto=texto_analise, detalhar=True)
            _tempo = round((datetime.now() - _ini).total_seconds(), 3)
            _tempo = f'{_tempo:.3f} s'
            rotulos_retornados = list(res.get('rotulos', []))

        return render_template("aplicar_regras.html",
                               texto_analise=texto_analise,
                               texto_processado=texto_processado,
                               rotulos_retornados=rotulos_retornados,
                               qtd_regras=qtd_regras,
                               tempo=_tempo,
                               grupo=grupo,
                               tags=tags,
                               ativo_regras='active',
                               title=title,
                               exemplos_regras=EXEMPLOS)
    except TemplateNotFound as e:
        return render_template_string(f'Página não encontrada: {e.message}')
Esempio n. 7
0
def analisar_criterio():
    dados = get_post(request)
    _texto = dados.get("texto", "")
    _texto = _texto if type(_texto) is dict else str(_texto)
    _criterios = str(dados.get("criterio", ""))
    _detalhar = str(dados.get("detalhar", "")) not in ("", "0", "False")
    _grifar = str(dados.get("grifar", "")) not in ("", "0", "False")
    if not _criterios:
        _criterios = str(dados.get("criterios", ""))
    # critério REGEX
    if _criterios[:2] in {'r:', 'R:'}:
        pb = PesquisaBR(texto=_texto, criterios='', print_debug=False)
        _texto_processado = ' '.join(pb.tokens_texto)
        regra_ok = re.search(_criterios[2:], _texto_processado)
        if _detalhar:
            return jsonify({
                'retorno': bool(regra_ok),
                'criterios': str(_criterios[2:]),
                'texto': _texto_processado
            })
        return jsonify({'retorno': bool(regra_ok)})
    # critério textual
    pb = PesquisaBR(texto=_texto, criterios=_criterios, print_debug=False)
    if pb.erros:
        return jsonify({
            'retorno': None,
            'erros': pb.erros,
            'criterios': pb.criterios
        })
    res = {'retorno': pb.retorno()}

    if _detalhar:
        if type(pb.tokens_texto) is dict:
            _texto_processado = {
                k: ' '.join(v)
                for k, v in pb.tokens_texto.items()
            }
        else:
            _texto_processado = ' '.join(pb.tokens_texto)
        res.update({
            'criterios': pb.criterios,
            'criterios_aon': pb.criterios_and_or_not,
            'texto': _texto_processado
        })
    if _grifar:
        _texto_grifado = pb.grifar_criterios(_texto).replace('\n', '<br>')
        res['texto_grifado'] = _texto_grifado
    return jsonify(res)
Esempio n. 8
0
def teste_pb_criterio():
    _criterios = '((purgação adj2 mora) com ((integr$ ou tota$) com dívida ou débito ou pagamento) ou débito) e ((busca adj2 apreensao) ou 911/??69)'
    _texto = {'texto':'texto aqui responsabilidade civil do estado','numero':123}
    pb = PesquisaBR(texto=_texto, criterios=_criterios, print_debug=False)
    pb.print_resumo()
Esempio n. 9
0
def teste_pb():
    pb = PesquisaBR()
    pb.testes()