Imagem com o logo da OpenAlex o símbolo de adição e o logo do ChatGPT sob um fundo azul marinho com linhas curvadas em tons de azul e verde.

Recomendações de artigos científicos da OpenAlex com ChatGPT

Francisco Foz
6 min readNov 10, 2023

Como potencializar a descoberta de informações com o ChatGPT?

Talvez você esteja sentindo que tudo está passando bem rápido e ao mesmo tempo muita coisa está acontecendo.

Já parou para pensar na quantidade de informações que recebemos, processamos e expressamos, pelo nosso cérebro, comparado há cinco anos atrás? Parece que mudou muito, não é mesmo?

“Vivemos uma verdadeira entropia da informação.”

Nossa sociedade está passando por uma transição devido aos impactos dos avanços da tecnologia, e a velocidade na produção de informação é uma consequência.

Essa situação afeta todas as áreas, incluindo o meio científico, que demanda informações mais seletivas e em um ritmo mais acelerado.

Então, como podemos aprimorar a qualidade e a precisão das recomendações de artigos científicos de maneira mais ágil?

Fonte de informação + Inteligência Artificial Generativa

ou

Biblioteconomia + Tecnologia

Durante esse texto, explicarei um “projeto”, a partir de uma ideia que tive ao realizar um curso sobre o uso da API do ChatGPT. “Rascunhei” um protótipo de sistema que pode auxiliar na descoberta e recomendação da informação.

Ressalva

Este projeto utiliza Inteligência Artificial Generativa para aprimorar a precisão das recomendações de artigos científicos. Embora seja possível implementar o projeto sem IA, a funcionalidade central depende dela. Além disso, o uso de fontes, diferentes da OpenAlex, também é viável (inclusive de Repositórios).

A ideia desse “projeto” não é desenvolver um produto novo e pronto, mas apenas treinar a partir dos meus próprios estudos pessoais e “rascunhar” um protótipo.

Gig de um pinguin com um chapéu de mago, com estrelas amarelas, na cor azul, na frente de um computador, com scripts, dentro de um iglu de gelo.

Bora lá?!

Sumário

Como é o fluxo do sistema?

Como o ChatGPT auxilia?

Estimativas de custos

Considerações finais

Como é o fluxo do sistema?

Basicamente, o fluxo do sistema está separado em 3 grandes partes:

  • Coleta e Armazenamento de Dados
  • Entendimento do Usuário
  • Recomendações Customizadas
Imagem da visão geral do fluxo do sistema

Coleta e Armazenamento de Dados:

Utilizei da API da OpenAlex, para coletar os dados de artigos mais recentes (última semana por exemplo).

Para esse projeto em si, armazenei apenas em uma única tabela estruturada formatada no padrão necessário (utilizando Python Pandas simples). Contudo, caso seja de fato implementada, recomendaria a estruturação em um banco de dados relacional.

Entendimento do Usuário:

Entender as necessidades informacionais do usuário é crucial para recomendar informações. Para esse “projeto”, eu fui simples e apenas questionei:

  • Área de conhecimento que tem interesse.
  • Tipo de acesso do artigo (aberto ou fechado)
  • Termos chave de interesse

Utilizei a ferramenta do Streamlit como forma de protótipo do front-end da aplicação.

Imagem da interface do sistema
Exemplo da interface do entendimento da etapa de “Entendimento do usuário”

Recomendações Customizadas

A partir dos artigos coletados e entendimento do usuário, propus um sistema de pontuação, para que se possa rankear os artigos e recomendar os N primeiros.

O sistema leva em conta a regra de priorização:

Score básico: Maior probabilidade da área(s) escolhida(s) pelo usuário

> Termo inserido pelo usuário no título

> Termo inserido pelo usuário no resumo

> Termo expandido pelo usuário no título

> Termo expandido pelo usuário no resumo

Imagem explicação o sistema de pontuação

A OpenAlex utiliza um sistema de classificação de conceitos (“concepts”) a partir do título e resumo para definir as áreas de cada documento, gerando uma probabilidade daquele conceito estar, de fato, correto ao documento (se quiser saber mais sobre os “concepts”, confira a documentação).

Para esse “projeto”, eu preferi utilizar apenas os de nível 0 (Political science, Philosophy, Economics, Business, Psychology, Mathematics, Medicine, Biology, Computer science, Geology, Chemistry, Art, Sociology, Engineering, Geography, History, Materials science, Physics, Environmental science).

ATENÇÃO: Os “concepts” da OpenAlex não são precisos, especialmente quando se trata de classificações mais detalhadas. Para outros propósitos, realizei algumas consultas na área de Biblioteconomia/Ciência da Informação (“Library science”) e obtive registros sem coerência alguma.

Portanto, tenha cautela ao utilizá-los! ¯\_(ツ)_/¯

Após a criação do sistema de pontuação e a coleta de N registros (neste exemplo específico do “projeto”, optei por usar o número 5), é recomendável a apresentação personalizada de um parágrafo que sintetiza todo o conteúdo dos artigos científicos, de forma semelhante a uma ‘newsletter’.

Como o ChatGPT auxilia?

Utilizo o ChatGPT em duas frentes:

  • “Expansor de termos”
  • “Resumo personalizado”

“Expansor de termos”:

Se um usuário disser que tem interesse em “Aprendizado de máquina” e houver artigos falando sobre “Machine learning”, “Aprendizado automático”, “Classificação”,”Regression” e não houver “Aprendizado de máquina” ele não iria entrar na regra condicional de atribuição de pontuação e, consequentemente, teria uma pontuação menor e não subiria no ranking para ser recomendado para o usuário.

Nesse caso, utilizo o ChatGPT para “expandir os termos”.

Imagem exemplificando o script com os resultados
Exemplo do script Python com o “input” e “output” do “expansor de termos”.
Imagem exemplificando o script com o prompt
Exemplo do promt utilizado

Não utilizei nenhum tesauro específico, nesse “projeto”, para melhorar ainda mais a qualidade, mas poderia implementar nessa fase (de qualquer forma, nem todas as áreas possuem um tesauro com grande abrangência para utilizarmos).

“Resumo personalizado”:

Para tornar a recomendação mais personalizada e atrativa para os usuários, a criação de um “Resumo personalizado” é bem interessante. Nesse processo, faço uso do ChatGPT para elaborar um texto agradável e envolvente.

Imagem exemplificando o resumo das recomendações.
Imagem exemplificando o resumo das recomendações.
Imagem exemplificando o script do prompt.
Exemplo do script Python com o “prompt” utilizado

Estimativas de custos

Confesso que não imaginava o quão barato e caro possa ser o uso da API.

Eu esperava que a utilização frequente dos prompts fosse mais custosa no uso corrente, mas realmente fiquei surpreso com o valor estimado para a criação do “Resumo das recomendações”.

Utilizei o Tokenizer, fornecido pela OpenAI para estimar a quantidade de tokens dos “inputs” e “outputs” passados.

Imagem exemplificando a estimativa do “Expansor de termos”
Imagem exemplificando a estimativa do “Resumo das recomendações”
Imagem exemplificando a estimativa total.

Se não houvesse um orçamento grande, eu particularmente pensaria em outras opções, pois não acredito que seja essencial pelo custo benefício. Porém, consultar seus usuários é a melhor opção.

Considerações finais

Esse foi apenas um “projeto” para aprimorar e testar meus conhecimentos a partir do curso da Alura:

Imagem do banner do curso, em um fundo na cor rosê.

GPT e Python: criando ferramentas com a API

No qual recomendo fortemente você fazer, se tiver interesse em se aprofundar no uso de Inteligência Artificial para desenvolvimento de ferramentas.

Está realmente excepcional!

Eu tenho ciência das “limitações” deste “projeto”, sobretudo da parte técnica e tecnológica, entretanto, é apenas um “rascunho”.

Esse “projeto” é somente uma ideia e muitas outras coisas podem ser feitas, como até mesmo utilizar em Repositórios, como forma de divulgação de seus materiais.

Mas você pode me perguntar como seria definido a área de conhecimento dos documentos se eu não tenho nenhuma classificação?

Inspirado no sistema de probabilidade da OpenAlex, recomendaria utilizar dos termos indexadores para classificá-los em uma respectiva taxonomia de classificação (THE, ASJC, FORD-OECD, QS Quacquarelli Symonds etc. Eu realmente gosto da QS! ) e a partir da frequência da classificação dos termos indexadores, atribuiria uma probabilidade do documento ser de alguma área.

Caso tenham interesse, confiram o repositório no GitHub:

Ou na apresentação resumida do “projeto”:

Mas agora quero saber de você:

Quais outras possibilidades de “novas ferramentas” acopladas com IA generativa você já pensou?

Deixe nos comentários e vamos compartilhar conhecimento.

Além disso, fica a reflexão:

“Informação não é conhecimento. A única fonte do conhecimento é a experiência.”

— Desconhecido

Se você chegou até aqui e curtiu, dê palmas, compartilhe e se inscreva para me acompanhar.

Ainda há muito a se explorar…

--

--

Francisco Foz

Bibliotecário | Analista de dados | Disseminando informações para produzir conhecimento.