dida Logo
Our client

Extracting information from customer requests

Given a free form vet appointment reason we extract symptoms, diseases and requested services.

Input:A short text giving the appointment reason
Output:    Any symptoms, diseases or required vet services that can be inferred from the text
Goal:Extract structured data from appointment reasons

Starting Point

Our client, felmo, offers vet appointments at home for cats and dogs across Germany. In order to book an appointment  online, customers can input a short text as an appointment reason. 

The goal of the project was to extract all symptoms, diseases and requested services from the appointment reasons.

To help train our model, felmo provided us with a dataset of thousands of appointments and their appointment reasons, each labeled with up to 10 symptoms, diseases or services which veterinarians had inferred from the text beforehand.


One of the most challenging aspects was that there were more than 500 symptoms, diseases and services to be distinguished and many symptoms had only subtle differences.

Another challenging aspect was the variation in style of writing. Most users gave a list of symptoms they observed. Some also provided speculations on what might be the underlying cause or also listed which symptoms of which they were certain their pet doesn’t have. Others wrote whole sentences describing their pets behavior over the last couple of days.


As a first step we wrote a simple algorithm which was able to find exact or almost exact (to account for typos) matches of the symptoms, services and diseases. This already worked pretty well when users provided a list of single words or short expressions.

To be able to handle speculations, negations and more descriptive sentences we used a pre-trained language model (a model trained on a large publicly available dataset to get some general language understanding), which we then fine-tuned on felmo’s data. We also worked together with felmo to improve the dataset, which ultimately led to an improvement in the models predictions.

This new model had as good accuracy on the list-like user inputs as our initial algorithm, but was now also able to recognize negations or infer symptoms from longer descriptions.

In the month-long proof of concept project we were able to:

  • show that a deep neural network could outperform algorithms using regular expressions on this task

  • already present a model which was delivering production-ready results

Now being able to extract the essential information from the appointment reasons, felmo can combine this with their experience and expertise to improve their processes saving their vets precious time!

Philipp Jackmuth

Managing Director


Tell us a little about your project requirements and we'll get in touch with you.

Further Projects

A selection of projects we have done

PublicPlan logo

Semantic Search for Public Administration

Our algorithm helps citizens through the bureaucracy of registering a business.

Stock piles containing files
House thats part of rental contract reviewed by machine learning
MieterEngel logo

Legal Review of Rental Contracts

Different methods from the field of NLP helped us to create software that spots errors in rental contracts.

Giant stock piles
idealo logo

Numeric Attribute Extraction from Product Descriptions

Automatically extract numerical attributes from product descriptions in order to enrich the existing database.

Machine learning arranged these solar panels
Enpal logo

Automatic Planning of Solar Systems

Creative solutions enabled us to automate the process of planning solar systems.