Un sistema de preguntas y respuestas para artículos sobre COVID-19
Introducción • Primeros pasos • Debajo del capó • API de servidor y cliente
información. La cantidad de documentos relacionados con el COVID-19 está aumentando exponencialmente. Con una cantidad tan enorme de información, cada vez es más difícil para la comunidad de investigación encontrar información relevante.
Motor de búsqueda con esteroides. Korono es una plataforma de respuesta a preguntas concebida para facilitar la búsqueda de información sobre el COVID-19. Puedes pensar en Korono como un motor de búsqueda con esteroides.
Principio de funcionamiento. El motor Korono se compone de dos fases: la fase del motor de búsqueda y la fase de respuesta a preguntas. En primer lugar, dada una consulta q
, el motor de búsqueda devuelve todos los artículos relevantes de esa consulta. Posteriormente, la respuesta se extrae de cada artículo y se muestra.
Puede utilizar la versión en línea (próximamente) o ejecutar su propio servidor.
Ejecute un servidor localmente:
./run_server.sh
Ejecute el cliente y haga una pregunta:
> from korono import client
> client . get_answers ( "What is coronavirus?" )
Motor de búsqueda . El motor de búsqueda utiliza un algoritmo de clasificación conocido como Okapi BM25, donde BM significa mejor coincidencia . BM25 es una función de recuperación de bolsas de palabras que clasifica documentos según los términos de consulta que aparecen en cada documento.
Respuesta a preguntas . Las preguntas se extraen del corpus utilizando Transformers, grandes modelos de lenguaje de redes neuronales. A partir de ahora, solo se admite el modelo distilbert-base-uncased-distilled-squad
. Próximamente planeamos ampliar el soporte.
load_data.get_df()
Devuelve el conjunto de datos subrayado.
load_data.get_metadata_df()
Devuelve el DataFrame de pandas de metadatos CORD-19.
korono_model.answer_question(question, context)
Dada una pregunta y un contexto, devuelve la respuesta.
korono.model.get_summary(text)
Dado un texto, el modelo devuelve el resumen abstractivo.
korono_model.find_start_end_index_substring(context, answer)
Devuelve el índice inicial y final, si existe, de la cadena answer
en la cadena context
.
client.get_answers_json(question)
Devuelve un objeto JSON con el formato: {
"results" : [
{
"context" : " coronavirus is an infectious disease " ,
"question" : " what is coronavirus? " ,
"answer" : " an infectious disease " ,
},
]
}
client.get_answers(question)
Devuelve una lista de todas las respuestas.