Este projeto consiste em uma API REST que realiza análise de artigos científicos da PubMed utilizando técnicas de Processamento de Linguagem Natural (NLP). O objetivo é extrair informações relevantes de artigos, como resumos, abstracts, sumários e gerar análises automatizadas para facilitar pesquisas e estudos científicos.
A API foi desenvolvida em Python utilizando FastAPI, tornando-a rápida, escalável e de fácil integração com outros sistemas.
- Python 3.12
- FastAPI: framework principal da API REST
- Uvicorn: servidor ASGI para rodar a API
Para o tratamento de texto e análise dos artigos, foram utilizadas as seguintes bibliotecas:
- spaCy: tokenização, parsing e lematização de texto
- en_core_web_sm: modelo de linguagem da spaCy para inglês
- NLTK: análise de texto, stopwords e pré-processamento
- Sumy: sumarização automática de textos
- Biopython: processamento de dados biomédicos
- WordCloud: geração de nuvens de palavras
- Scikit-learn: análise estatística e pré-processamento
- Pandas / Numpy: manipulação e análise de dados
- Requests: consumo de APIs externas
- Email-validator: validação de emails enviados à API
A API acessa artigos da PubMed a partir de seus IDs e realiza:
- Extração de abstract e summary
- Análise de palavras-chave
- Geração de relatórios resumidos
- Possibilidade de envio do resultado para email informado
POST /analyze
Body JSON esperado:
{
"email": "usuario@example.com",
"article_ids": ["12345678", "87654321"]
}Exemplo de resposta:
{
"12345678": {
"title": "Exemplo de título",
"abstract": "Resumo do artigo...",
"summary": "Sumário gerado pelo NLP"
}
}- O campo article_ids não pode estar vazio
- Cada ID deve ser numérico
- O email deve ser válido
- Docker
- Docker Compose
- Git
- Clonar o repositório
git clone https://github.com/seu-usuario/api-pubmed-nlp.git
cd api-pubmed-nlp- Construir a imagem Docker
docker compose build- Subir o container
docker compose up -d- Acessar a API
- A API estará disponível em http://<SEU_SERVIDOR>:8000
- A documentação interativa do FastAPI pode ser acessada em http://<SEU_SERVIDOR>:8000/docs