/COVID-QA

Tool to answer questions about COVID-19. Using NLP (Question Answering) and trusted, curated data sources.

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

COVID-QA

cover-photo

Provide trustworthy questions to COVID-19 via NLP

Staging: https://covid-staging.deepset.ai/
Prod: https://covid.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 model to find answers is build via haystack. It's configured and exposed via this API.
  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