Um sistema de perguntas e respostas para artigos sobre COVID-19
Introdução • Primeiros passos • Noções básicas • API de servidor e cliente
Informação. A quantidade de documentos relacionados à COVID-19 está aumentando exponencialmente. Com uma quantidade tão grande de informações, está cada vez mais difícil para a comunidade de pesquisa encontrar as informações relevantes.
Mecanismo de busca com esteróides. Korono é uma plataforma de esclarecimento de dúvidas concebida para facilitar a pesquisa de informações sobre o COVID-19. Você pode pensar em Korono como um mecanismo de busca com esteróides.
Princípio de funcionamento. O motor Korono é composto por duas fases: a fase do motor de busca e a fase de resposta às perguntas. Em primeiro lugar, dada uma consulta q
, o motor de busca devolve todos os artigos relevantes dessa consulta. Posteriormente, a resposta é extraída de cada artigo e exibida.
Você pode usar a versão online (em breve) ou executar seu próprio servidor.
Execute um servidor localmente:
./run_server.sh
Execute o cliente e faça uma pergunta:
> from korono import client
> client . get_answers ( "What is coronavirus?" )
Motor de busca . O mecanismo de busca usa um algoritmo de classificação conhecido como Okapi BM25, onde BM significa melhor correspondência . BM25 é uma função de recuperação de palavras que classifica documentos com base nos termos de consulta que aparecem em cada documento.
Resposta a perguntas . As questões são extraídas do corpus utilizando Transformers, modelos de linguagem de grandes redes neurais. A partir de agora, apenas o modelo distilbert-base-uncased-distilled-squad
é suportado. Em breve, planejamos estender o suporte.
load_data.get_df()
Retorna o conjunto de dados sublinhado.
load_data.get_metadata_df()
Retorna o DataFrame do pandas de metadados CORD-19.
korono_model.answer_question(question, context)
Dada uma pergunta e um contexto, retorna a resposta.
korono.model.get_summary(text)
Dado um texto, o modelo retorna o resumo abstrativo.
korono_model.find_start_end_index_substring(context, answer)
Retorna o índice inicial e final, se existirem, da string answer
na string context
.
client.get_answers_json(question)
Retorna um objeto JSON no formato: {
"results" : [
{
"context" : " coronavirus is an infectious disease " ,
"question" : " what is coronavirus? " ,
"answer" : " an infectious disease " ,
},
]
}
client.get_answers(question)
Retorna uma lista de todas as respostas.