A lógica implementada é a seguinte: Busca Inicial Rápida: Seu sistema atual (fuzzy, exata, etc.) age como um filtro para encontrar um conjunto de procedimentos candidatos. Carregamento Local: O servidor app.py carrega o modelo BERTimbau de uma pasta local (./models/) ao iniciar. Reclassificação Semântica: Os candidatos da busca inicial são passados para o modelo, que calcula um score semântico para cada um em relação à sua busca. Resultado Final Ordenado: A lista final é reordenada com base nesse score semântico, e o melhor resultado é destacado. Interface Melhorada: O index.html é atualizado para exibir essa lista final ordenada, destacar a melhor correspondência e mostrar o novo score semântico. 1. README_melhorado.md (Atualizado) Este arquivo agora inclui as novas dependências e as instruções para baixar o modelo localmente. Generated markdown # Buscador de Procedimentos - RN 465 (Versão Semântica) ## Descrição Este é um buscador de procedimentos médicos que utiliza uma abordagem de duas etapas para máxima precisão: 1. **Busca Rápida (Filtro)**: Utiliza busca por código, textual, fuzzy e por palavras-chave para encontrar um conjunto de procedimentos candidatos relevantes. 2. **Reclassificação Semântica (Precisão)**: Utiliza o modelo de linguagem **BERTimbau** para analisar o *significado* da sua busca e reordenar os candidatos, apresentando o resultado mais relevante semanticamente em primeiro lugar. Isso combina a velocidade da busca tradicional com a precisão da inteligência artificial para entender a intenção do usuário. ## Instalação e Execução ### Pré-requisitos - Python 3.7 ou superior - Git e Git LFS (para baixar o modelo facilmente) ### Passos para Instalação 1. **Clone o projeto ou descompacte o arquivo**: ```bash # Se recebeu um zip: unzip buscador_procedimentos.zip cd buscador_procedimentos/ ``` 2. **Baixe o Modelo de Linguagem (BERTimbau)**: Este passo precisa ser feito apenas uma vez. Ele irá baixar o modelo (aprox. 400MB) para uma pasta local `models/` para que a aplicação funcione 100% offline. ```bash # Crie a pasta para os modelos mkdir models cd models # Instale o Git LFS se não tiver # git lfs install # Clone o repositório do modelo git clone https://huggingface.co/neuralmind/bert-base-portuguese-cased # Volte para a pasta principal do projeto cd .. ``` 3. **Instale as dependências do Python**: ```bash pip install Flask pandas thefuzz python-Levenshtein unidecode sentence-transformers torch ``` 4. **Execute o buscador**: ```bash python app.py ``` *Aguarde a mensagem `[SERVIDOR PRONTO]` no terminal. O primeiro carregamento pode ser um pouco mais lento devido ao modelo.* 5. **Acesse no navegador**: Abra seu navegador e acesse: `http://127.0.0.1:5000/` ## Como Usar Digite o procedimento desejado. Exemplos: - `cirurgia para corrigir miopia` - `exame de sangue completo` - `ressonancia magnetica do joelho` - `tratamento para apendicite` ### Interpretação dos Resultados A lista de resultados é ordenada pela relevância semântica. - **Melhor Correspondência**: O primeiro resultado, destacado com uma borda verde e um selo, é a recomendação do sistema como o mais provável de ser o que você procura. - **Score Semântico**: Uma pontuação de 0 a 100 que indica o quão similar é o *significado* do procedimento encontrado com o termo que você buscou. - **Score de Busca**: A pontuação original do método de busca inicial (fuzzy, etc.). - **Tipo de correspondência**: Indica como o resultado foi encontrado na busca inicial (filtro). ## Estrutura dos Arquivos - `app.py`: Aplicação Flask principal, carrega os dados e o modelo. - `enhanced_search_v2.py`: Módulo que executa a busca inicial e a reclassificação semântica. - `templates/index.html`: Interface web (front-end). - `models/bert-base-portuguese-cased/`: **(NOVO)** Contém os arquivos do modelo de linguagem. - `r