Qualitative Coding with Julius

Introduction to Qualitative Coding

Qualitative coding is a foundational process in the fields of education, sociology, and various forms of research involving human responses. It involves categorizing and tagging qualitative data to identify themes, concepts, and patterns. This process allows researchers to convert survey responses, interviews, and textual content into actionable insights.

Open-ended Coding Explained

Open-ended coding refers to the initial phase of qualitative analysis where codes are applied to data without pre-defined categories. This approach is flexible and exploratory, allowing researchers to immerse themselves in the data and uncover themes and patterns as they emerge.

Automating Qualitative Coding with Julius

Recognizing the traditionally manual and time-consuming nature of qualitative coding, I explored leveraging Julius, an LLM-powered analyst, to automate this process. Julius offers a novel approach to handling qualitative data, making it possible to parse, code, and analyze text efficiently.

Project Workflow

Data Preparation

I began by sourcing George Orwell’s “Animal Farm” from Project Gutenberg, considering its rich thematic content and narrative style suitable for this experiment. I used Julius to segment the text into a structured format, with each paragraph allocated its own row in a table, under the premise that paragraphs provide sufficient context for effective coding.

Coding Process

With the data neatly organized, I initiated the open-ended coding for the first 20 rows. This step involved instructing Julius to apply qualitative codes based on the content of each paragraph. It was crucial to request Julius to justify each code application to ensure relevance and accuracy, thereby avoiding arbitrary code assignments.

Note: it is important to ask Julius to provide reasoning because an LLM might simply apply random codes out of nowhere but if asked for reasoning behind each code it is more likely to grab the relevant text and apply actually relevant codes.

However, as the coding progressed without specific thematic direction, I encountered challenges related to data management and code consistency. This led to a realization of the importance of structured guidance in open-ended coding, even when leveraging AI tools like Julius.

Thematic Shifts and Error Handling

Despite the hiccup with data segmentation and the eventual mismatched indices error, the coding journey highlighted an interesting thematic shift from writing style to more nuanced thematic coding. This shift underscores the adaptability of Julius in navigating the complexities of qualitative data.

This is okay, and mostly my fault for asking Julius to do it completely open-ended without providing guidance. Usually, even when open-ended, coding can have an expected structure or theme. Most codes could be fit into two categories, which Julius was aware of as well, as you can see in this part of the conversation:

Data Analysis and Insights

Post-coding, the focus shifted towards extracting insights from the applied codes. Concentrating on “Thematic Concept” codes, I analyzed the frequency and distribution of these codes to identify dominant themes.

Further, I explored character-specific coding, revealing insights into the characters of Napoleon and Snowball and their roles within the narrative of “Animal Farm.”

Wordcloud Generation

Leveraging Julius further, I generated word clouds for select codes to visualize the textual context associated with them. This step provided a graphical representation of the themes and concepts, enriching the analysis with a visual dimension.

Conclusion and Reflections

The journey of automating qualitative coding with Julius has been insightful and illuminating. It demonstrated that while qualitative coding can be tedious and manually intensive, tools like Julius can significantly streamline the process. This experiment served as a rough draft for automating qualitative coding, highlighting the potential for such technology to support and enhance traditional research methodologies.

Through this exploration, we’ve seen that:

  • Coding with an LLM tool like Julius simplifies the qualitative coding process.
  • Despite being a preliminary attempt, the potential for automating qualitative coding is substantial.
  • Julius not only facilitates the coding but also aids in subsequent analysis, offering a comprehensive tool for qualitative researchers.
  • The generated data can be further exported for extended analysis or reporting.

This endeavor with Julius reaffirms the evolving landscape of qualitative research, where AI tools can play a pivotal role in augmenting human efforts, leading to more efficient and insightful analyses.


very cool! this is my first time hearing the term qualitative coding


it’s helpful to hear how Julius can help with qualitative analysis since I’ve only know it as a quantitative tool. great post!


Thanks for sharing this study. We used ChatGPT (free version) for qualitative analyses with some success and plan to try Julius in the near future.

One question is about the differences between giving Julius predetermined categories/themes vs letting the bot generate categories/themes on it’s own. In many cases of qualitative data analysis, I tend to prefer letting themes emerge naturally rather than a priori forcing themes. We found with ChatGPT, it could extract themes on it’s own fairly accurately as long as prompts were clear. We checked it against human coding and they were very similar. Any thoughts about this?

1 Like

Oh interesting. I am working currently on some qualitative coding and planning to do a comparison with a human coder, both on open-ended as well as using a predetermined set of codes.

I think it can be somewhat challenging to go down the open-ended route because you need to be able to loop through it a few times and have Julius try and group things generated on the first try into fewer, more sensible, categories (much like a human coder would do).

I am still trying to figure out what the optimal approach there would be. It becomes much simpler for a predetermined set of categories. I think even for open-ended coding, it’s good to give Julius a theme of sorts because typically a research team will already have questions in mind prior to going into coding, even if open-ended, and that can really help steer a Large Language Model in the desired direction.

1 Like