Skip to content
API & Webapp to answer questions about COVID-19. Using NLP (Question Answering) and trusted data sources.
Jupyter Notebook Python JavaScript Kotlin CSS HTML Other
Branch: master
Clone or download

README.md

COVID-QA

cover-photo

Provide trustworthy answers to questions about COVID-19 via NLP

Prod: https://covid.deepset.ai/
Staging: https://covid-staging.deepset.ai/
API: https://covid-backend.deepset.ai/docs
🤖Telegram Bot: Add it to your account via @corona_scholar_bot

⚡️ Problem

  • People have many questions about COVID-19
  • Answers are scattered on different websites
  • Finding the right answers takes a lot of time
  • Trustworthiness of answers is hard to judge
  • Many answers get outdated soon

💡 Idea

  • Aggregate FAQs and texts from trustworthy data sources (WHO, CDC ...)
  • Provide an UI where people can ask questions
  • Use NLP to match incoming questions of users with meaningful answers
  • Users can provide feedback about answers to improve the NLP model and flag outdated or wrong answers
  • Display most common queries without good answers to guide data collection and model improvements

⚙️ Tech

  • Scrapers to collect data
  • Elasticsearch to store texts, FAQs, embeddings
  • NLP Models implemented via Haystack to find answers via a) detecting similar question in FAQs b) detect answers in free texts (extractive QA)
  • NodeJS / koa / eggjs middleware
  • React Frontend

Quick overview of current status

  1. Check out the demo app to get a basic idea
  2. Data: At the moment we are using scrapers to create a CSV that get's ingested into elasticsearch
  3. Model: The NLP models to find answers are build via haystack. They are configured and exposed via this API. English: sentence-bert, Other languages: BM25
  4. Frontend/middleware: TODO

❤️ How you can help

This project is build by the community for the community. We are really appreciating every kind of support! There's plenty of work on UX, Design, ML, Backend, Frontend, Middleware, Data collection ...

We are also happy if you just report bugs, add documentation or flag useful/inappropriate answers returned by the model.

Gitter Channel: GitHub Issues will be the main communication channel, but Gitter can be used for higher-level coordination etc.

Some next TODOs we see:

Data / Backend

Machine learning / NLP / IR

  • English+German evaluation dataset & pipeline to benchmark models
  • Benchmark baseline models
  • Improve NLP models for FAQ matching (better embeddings, e.g. sentence-bert trained on Quora duplicate questions dataset)
  • Add extractive QA Models
  • Support other languages (models)
  • Tune Elasticsearch + Embedding models

UI/UX/Design

  • Integrate user feedback mechanism for answers (flag as "correct", "not matching my question", "outdated", "fake news")
  • Tab to explore common queries and those with bad answers
  • Logos / icons
  • Intuitive displaying of search results
  • UX for adding/reviewing data sources by the crowd
You can’t perform that action at this time.