I’m sure you’ve also spent loads of time searching for an answer to a specific question among the sheer wealth of information available in our digital world. Finding what we need is becoming ever more challenging and time-consuming. Whether in the vastness of the World Wide Web or in the tangled web of corporate data and information systems, a keyword search often only narrows down the search. You then need to filter through a mass of search results to find what you are looking for. However, there’s help at hand. Discover in this article what a Natural Language Question Answering system is, and how it makes it easier to find answers in the data jungle.
As digitalisation progresses, the volume of data worldwide is also rapidly growing. The statistics portal Statista estimates that in 2021, 79 zettabytes of data will have been created, captured and consumed. They expect this number to more than double within 4 years, forecasting 181 zettabytes of data for 2025.
Companies using the SEEBURGER Business Integration Suite (BIS) are able to process huge amounts of data every day. This may be from e-invoices, API calls or in other protocols and formats. BIS can communicate between various systems using this structured data.
However, in addition to structured data, there is more and more unstructured data being generated. This includes documents, blog articles, voice messages and videos. Much of this unstructured data contains interesting information on a wide range of topics. However, finding the answer to a specific question you may have on these topics is neither quick nor easy. The number of these documents and files just keeps growing! Classic search engines such as Google, Bing, etc. do help you to find certain documents on the web, but actually sifting through the wealth of documents for specific details is often left to the user.
A new approach is needed to make it quicker and easier to search and find the information end users need. Let us introduce you to natural language question answering systems.
What is a natural language question answering system?
Unlike traditional keyword searches, a Natural Language Question Answering system does not return a complete document to the user. Instead, users ask a question in natural language and receive a specific answer in return.
A user who types in “What is the capital of Germany?” not only receives a web page with related information, but also the concrete answer “Berlin”. This saves the user a lot of time in finding the answer, especially if he would otherwise have to trawl through particularly long documents.
How does a natural language question answering system work?
Developing question answering systems has been a hot topic in IT for quite some time. Earlier, there were attempts to set up complex rules to enable a system to understand a user’s naturally worded question and to provide an answer.
The natural language question answering systems of today often take an extractive approach, and consist of a retriever and a reader. The answers to the questions are not stored in large databases, rather the system attempts to find and extract an appropriate answer to a user’s question from a mass of texts. Firstly, documents relevant to the user’s question are loaded from a document store. Then, the reader attempts to extract the answer to the user’s question.
What is a document store?
The document store is responsible for providing relevant documents. There are different ways of doing this. Often, a simple or reverse index is used. One well-known, commonly used such reverse index is Apache Lucene, which is used as an index in Elasticsearch. It’s a fast, efficient way to call up documents.
What is a retriever?
A retriever is responsible for retrieving relevant documents for the user’s question. First of all, it attempts to extract the relevant terms in the question. It then uses these to retrieve relevant documents.
In order to turn a user’s question into the type of query a retriever can process, various Natural Language Processing (NLP) techniques are used. These include:
- Removing punctuation
Full stops, commas and other punctuation are superfluous in retrieving relevant documents. These are therefore removed from the user’s question.
- Removing stopwords
Stopwords are commonly occurring words which don’t have a significant impact on content. Examples include articles such as ‛the’, ‛a’, ‛an’. These words are therefore filtered out.
- Tagging entities
Entities, such as products or names, are usually very relevant to the query. These are therefore incorporated into the query.
Words can appear in different forms or conjugations (walk, walked, walking, etc.). As they may well appear in different forms within in a document, such words are reduced to a base form before being incorporated into the query.
These steps help create a query, which is then made to the document store. The retriever grabs the most relevant documents and passes these on to the reader to extract an answer to the user’s question.
What is a reader in a question answering system?
A reader is responsible for extracting an answer from the documents it receives. Using a suitable language model, it tries to understand both the question and the documents and to extract the most appropriate answer from the texts.
What is a language model?
A language model is used to extract answers from the texts submitted. One such model is the frequently used BERT model illustrated in Figure 2, however other language models are also available. A language model has been trained to calculate the probability of a word or phrase occurring.
There are several different types of language model. The quality of their results depends on the areas in which they are employed. Many of these models are take a transformer or attention based approach which enables them to comprehend and process language.
How does the BERT model work?
Devlin et al‘s Bidirectional Encoder Representations from Transformers, commonly known as BERT, is a powerful language model. It builds on the encoder from Vaswani et al‘s Transformers and attention mechanism.
It starts by dividing the input into individual words, known as tokens. These are augmented with further BERT-specific tokens and entered into the model. For a Question Answering scenario, the input consists of both the question and the paragraph from which the answer is to be extracted.
There are multiple layers of transformers between the input and output of the model, which are used to compute the answer.
The model outputs start and end tokens to determine the best answer. These are then used to help return an answer to the user.
At this stage, the model is not yet able to compute meaningful answers itself. To make this possible, the model needs to be trained. Initially, the model was trained to have general reading comprehension. This enables it to be used in further areas. To this end, the BERT model was pre-trained using the over 800 million words in BooksCorpus, as well as the English version of Wikipedia. For the latter, the model was only trained on the main body of the individual articles, encompassing over 2.5 billion words. The model was able to learn which words or phrases are dependent on or commonly used with which others, and can use this knowledge for other tasks. The advantage of pre-training a model is that it is later relatively easy to adapt it to a range of specific tasks – such as finding answers in paragraphs without necessarily needing to re-train it.
The pre-trained model was further prepared for its extractive question answering tasks using the SQuAD data set. The SQuAD data set consists of 100,000 pairs of questions and answers to selected Wikipedia articles. By working through these sample pairs, the model builds on its previously learned general language comprehension and learns to extract and return the right answers to the questions.
A pre-trained BERT model can be directly employed in a Question Answering System. However, by following up by using data sets from specialist interest areas or certain types of document, the model can be trained to deliver even better results in a certain area.
SeeQA –SEEBURGER’s Natural Learning Question Answering System
The SeeQA app is a natural language question answering tool that SEEBURGER uses in-house to retrieve information from various systems. Users enter their questions into an app and the system searches documents and blog articles for relevant words and extracts answers for the user. The most relevant answers are presented in a list, highlighted in yellow, and shown in context. This means that the user not only gets and answer to his question, he is also shown related content.
This system has helped our employees find the information they need more quickly. According to an internal survey, it has made it significantly easier to find the information required. Although the system has not always answered every question correctly, most users have been able to find information which has helped them with their issue.
An integrated feedback facility provides the system with information on how relevant answers have been to users. This feedback is collected and stored. It is then used to create new training data so the model can be improved even further. This continuous learning process helps the system better adapt to SEEBURGER-specific texts and questions.
This ongoing adaptation of our chosen model to SEEBURGER-specific texts will help us see to what extent the system can learn and improve on its own, and at what point that particular model cannot be optimized any further.
 Statista Inc.: Volume of data/information created, captured, copied, and consumed worldwide from 2010 to 2025 https://www.statista.com/statistics/871513/worldwide-data-created/ (accessed 13th Dec 2021)
 Cornell University, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, [Submitted on 11 Oct 2018 (v1), last revised 24 May 2019 (this version, v2)], accessed on 13th Dec 2021
Get in contact with us:
Please enter details about your project in the message section so we can direct your inquiry to the right consultant.
Written by: Florian HöhnFlorian Höhn started on placement at SEEBURGER in 2013 during his degree. Since 2016, he has been working for SEEBURGER as a software developer, developing solutions for API management and API integration. He has been interested in artificial intelligence since studying for his masters, and uses the knowledge he has in this area to develop intelligent systems and products. Outside of work, Florian is a keen sportsman and enjoys spending time with family and friends.