Question answering (QA) is a computer science discipline within the fields of information retrieval and natural language processing (NLP), which is concerned with building systems that automatically answer questions posed by humans in a natural language.
There are two domains in question answering.
1 - Open domain question answering (ODQA)
2 - Closed domain question answering (CDQA)
The ability to answer factoid questions is a key feature of any dialogue system. Formally speaking, to give an answer based on the document collection covering wide range of topics is called open-domain question answering (ODQA). The ODQA task combines the challenges of document retrieval (finding the relevant articles) with that of machine comprehension of text (identifying the answer span from those articles). An ODQA system can be used in many applications. Chatbots apply ODQA to answer user requests, while the business-oriented Natural Language Processing (NLP) solutions leverage ODQA to answer questions based on internal corporate documentation. The picture below shows a typical dialogue with an ODQA system.
When no restriction is made on the domain of the questions we are talking about open domain question answering. Instead, when questions are bound to a specific domain we are talking about closed (or restricted) domain question answering (CDQA). Here we are providing a paragraph or a document with a question. The CDQA system will extract the answer to the question by analysing the given paragraph or document;
Here I am explaining different approaches for both open domain question answering and closed domain question answering.
1 - Adaptnlp
2 - Deeppavlov
3 - Distilbert
4 - Cdqa-suite
5 - Transformer
6 - Transformer Pipeline
7 - Simple Transformers
8 - txtai
9 - Haystack
10 - Ktrain simpleQA
1 - Deeppavlov
2 - Wikipedia QA