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:
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!