Haystack Annotation Tool

Use our lightweight annotation tool to label datasets for use with semantic search and question answering.

If you’re interested in natural language processing (NLP), then you are probably aware of the importance of high-quality labeled datasets to any machine learning model. This is especially true for Transformer-based neural networks, which are particularly apt for solving natural language tasks — be it question answering (QA), sentiment analysis, or text classification.

But labeling datasets isn’t necessarily a cost-friendly endeavor. You’ll need to write annotation guidelines, train a team of annotators, and ensure quality through evaluation. And why even label your own data when there are plenty of annotated datasets out there? It is true that a general-purpose QA dataset can yield good results. But you can achieve better system performance, as well as more accurate evaluation scores, with a labeled dataset that is tuned to your own use case. 

If you’re working on question answering within a highly specialized domain or with a lower-resource language, labeling your own data is an excellent idea. Haystack’s free annotation tool is here to assist you with that task. The tool makes it easy to organize your documents, create template questions, assign tasks to different team members, and export the annotated dataset into the right format.

What Is Haystack?

Haystack is an open source framework for composable NLP that emphasizes usability and customizability. With the Haystack NLP framework, you can quickly set up a ready-made NLP pipeline that uses the latest pre-trained Transformer models. Alternatively, you may design a custom pipeline and fine-tune on your own data. The exact implementation depends on your use case and the resources you can allocate. 

Since a lot of our work at Haystack revolves around semantic question answering, we know how important and how hard it is to create good datasets. This has led us to design the annotation tool to assist you in creating SQuAD-style datasets. 

What Is SQuAD?

The Stanford Question Answering Dataset (SQuAD) is the largest dataset for extractive question answering in the English language. SQuAD-style datasets exist for many different languages — in fact, our deepset team created the GermanQuAD dataset. In extractive question answering, a semantic QA model extracts the answer to a given question from a collection of texts. Crucially, the answer has to fit the question semantically rather than lexically. In other words, it should not rehash the words in the question, but should rather provide a meaningful response. 

SQuAD itself was created with the help of crowdworkers. The annotators received text passages from Wikipedia and were asked to create questions that could be answered by the passage at hand. Because of the semantic aspect, SQuAD annotators were encouraged to use different wordings, and could not copy and paste Wikipedia text into their questions. SQuAD can now be used to fine-tune a general Transformer language model like BERT to the question answering task. 

How to Use The Haystack Annotation Tool

To get started with the Haystack annotation tool, simply register for the SaaS tool. Once you’re signed up, you can start uploading your own documents, creating questions, and assigning tasks to your team members. For detailed instructions, have a look at our blog post on data labeling

For more information on how to create high-quality question answering datasets, and instructions on how to set up the annotation tool locally, check out the tool’s documentation page.