Skip to content
@harmonydata

Harmony

Harmonising mental health data with natural language processing

The Harmony Project logo

🌐 harmonydata.ac.uk Harmony | LinkedIn Harmony | X Harmony | Instagram Harmony | Facebook Harmony | YouTube

PyPI package PyPi downloads forks docker r

You can also join our Discord server!

What does Harmony do?

  • Psychologists and social scientists often have to match items in different questionnaires, such as "I often feel anxious" and "Feeling nervous, anxious or afraid".
  • This is called harmonisation.
  • Harmonisation is a time consuming and subjective process.
  • Going through long PDFs of questionnaires and putting the questions into Excel is no fun.
  • Enter Harmony, a tool that uses natural language processing and generative AI models to help researchers harmonise questionnaire items, even in different languages.

Quick start with the code

💁You can run the walkthrough Python notebook in Google Colab with a single click: Open In Colab

🇷You can also download an R markdown notebook to run in R Studio: Open In R Studio

🇷You can run the walkthrough R notebook in Google Colab with a single click: Open In Colab

The Harmony Project

Harmony is a tool using AI which allows you to compare items from questionnaires and identify similar content. You can try Harmony at https://app.harmonydata.ac.uk and you can read our blog at https://harmonydata.ac.uk/blog/.

The source code for Harmony is on Github at https://github.com/harmonydata/harmony.

Here's a walkthrough video on how you can use Harmony online at harmonydata.ac.uk. Click to view:

Harmonising questionnaires

Looking for source code?

Harmony team internal

Information about Harmony's server setup and deployment is in the private repo harmony_deployment_ulster_private.

💚 Harmonising Mental Health Data

The Harmony project is a data harmonisation project that uses Natural Language Processing to help researchers make better use of existing data from different studies by supporting them with the harmonisation of various measures and items used in different studies.

‎😃💁Who worked on Harmony?

Harmony is a collaboration project between Ulster University, University College London, the Universidade Federal de Santa Maria, and Fast Data Science. Harmony is funded by Wellcome as part of the Wellcome Data Prize in Mental Health.

The core team at Harmony is made up of:

✉️Who to contact about Harmony?

You can contact us at https://harmonydata.ac.uk/contact/.

📜How do I cite Harmony?

McElroy, E., Moltrecht, B., Ploubidis, G.B., Scopel Hoffman, M., Wood, T.A., Harmony [Computer software], Version 1.0, accessed at https://app.harmonydata.ac.uk. Ulster University (2022)

🔢Does Harmony store my data?

If you upload a questionnaire or instrument, Harmony does not store or save it. You can read more on our Privacy Policy page.

⚙️How does Harmony work?

Harmony passes the text of each questionnaire item through a neural network called Sentence-BERT, in order to convert it into a vector. The similarity of two texts is then measured as the similarity between their vectors. Two identical texts have a similarity of 100% while two completely different texts have a similarity of 0%. You can read more in this technical blog post and you can even download and run Harmony’s source code.

🎯How reliable is Harmony?

Harmony was able to reconstruct the matches of the questionnaire harmonisation tool developed by McElroy et al in 2020 with the following AUC scores: childhood 81%, adulthood 77%. Harmony was able to match the questions of the English and Portuguese GAD-7 instruments with AUC 100%. You can read more in this blog post.

🧮What do the numbers mean?

The numbers are the cosine similarity of document vectors. The cosine similarity of two vectors can range from -1 to 1 based on the angle between the two vectors being compared. We have converted these to percentages. We have also used a preprocessing stage to convert positive sentences to negative and vice-versa (e.g. I feel anxious -> I do not feel anxious). If the match between two sentences improves once this preprocessing has been applied, then the items are assigned a negative similarity.

📊 Does Harmony give p-values?

At this time Harmony does not give p-values. But you can interpret the percentage matches like correlation coefficients. In future we hope to provide more statistical data to Harmony’s users.

🧑 Who developed the Python code of Harmony?

Popular repositories

  1. harmony harmony Public

    The Harmony Python library: a research tool for psychologists to harmonise data and questionnaire items. Open source.

    Python 3 6

  2. harmony_original harmony_original Public

    The Harmony project

    Jupyter Notebook 1 1

  3. .github .github Public

    Introduction to the Harmony project

  4. harmonyapi harmonyapi Public

    This is the source code for the Harmony project REST API

    Python 3

  5. app app Public

    Harmony front end

    JavaScript 4

  6. brand brand Public

    Python 1

Repositories

Showing 10 of 16 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…