Un système de questions-réponses pour les articles COVID-19
Introduction • Prise en main • Sous les capots • API serveur et client
information. La quantité de documents liés au COVID-19 augmente de façon exponentielle. Avec une telle quantité d’informations, il devient de plus en plus difficile pour la communauté des chercheurs de trouver les éléments d’information pertinents.
Moteur de recherche sous stéroïdes. Korono est une plateforme de questions-réponses conçue pour faciliter la recherche d'informations concernant le COVID-19. Vous pouvez considérer Korono comme un moteur de recherche sous stéroïdes.
Principe de fonctionnement. Le moteur Korono est composé de deux phases : la phase moteur de recherche et la phase questions-réponses. En premier lieu, étant donné une requête q
, le moteur de recherche renvoie tous les articles pertinents de cette requête. Plus tard, la réponse est extraite de chaque article et affichée.
Vous pouvez soit utiliser la version en ligne (à venir), soit exécuter votre propre serveur.
Exécutez un serveur localement :
./run_server.sh
Exécutez le client et posez une question :
> from korono import client
> client . get_answers ( "What is coronavirus?" )
Moteur de recherche . Le moteur de recherche utilise un algorithme de classement appelé Okapi BM25, où BM signifie meilleure correspondance . BM25 est une fonction de récupération de sacs de mots qui trie les documents en fonction des termes de requête apparaissant dans chaque document.
Réponse aux questions . Les questions sont extraites du corpus à l’aide de Transformers, modèles linguistiques de grands réseaux de neurones. Pour l’instant, seul le modèle distilbert-base-uncased-distilled-squad
est pris en charge. Bientôt, nous prévoyons d'étendre notre support.
load_data.get_df()
Renvoie l'ensemble de données souligné.
load_data.get_metadata_df()
Renvoie le DataFrame pandas de métadonnées CORD-19.
korono_model.answer_question(question, context)
Étant donné une question et un contexte, renvoie la réponse.
korono.model.get_summary(text)
Étant donné un texte, le modèle renvoie le résumé abstractif.
korono_model.find_start_end_index_substring(context, answer)
Renvoie l'index de début et de fin, s'ils existent, de la chaîne answer
dans la chaîne context
.
client.get_answers_json(question)
Renvoie un objet JSON du formulaire : {
"results" : [
{
"context" : " coronavirus is an infectious disease " ,
"question" : " what is coronavirus? " ,
"answer" : " an infectious disease " ,
},
]
}
client.get_answers(question)
Renvoie une liste de toutes les réponses.