Qualitative Research support tools in Python!
Project description
🔍 CRISP-T (Sense-making from Text and Numbers!)
TL;DR 🚀 CRISP-T is a qualitative research method and a toolkit to perform textual (e.g. topic modelling) and numeric (e.g. decision trees) analysis of mixed datasets for computational triangulation and sense-making (optionally) using large language models.
👉 CLI Cheatsheet | Demo & Examples | Documentation
Give us a star ⭐️ if you find this useful!
📖 Introduction
Qualitative research focuses on collecting and analyzing textual data to explore complex phenomena. While qualitative and quantitative data are often used together, there is no standard method for combining them.
CRISP-T integrates textual data (interview transcripts, field notes) and numeric data (surveys, demographics) into a unified corpus. It allows researchers to:
- Perform INDUCTIVE analysis (finding patterns).
- Triangulate findings by linking text topics to numeric trends.
- Use Semantic Search to find relevant literature or code documents.
- Leverage GenAI through our MCP server for agentic analysis.
Key Features
- ✅ No Python required - Full CLI support.
- ✅ Interpretivist approach - Designed for sense-making, not just data science.
- ✅ GenAI Ready - Augments LLMs with agentic tools.
- ✅ Open Source - GPL-3.0 License.
The CRISP tools may also be useful for:
- ⭕ Automated interview coding dictionary generation.
- ⭕ Semantically filtering journal articles for literature review.
- ⭕ Generating visualizations for qualitative (e.g. word cloud) and quantitative (e.g. TDABM) data.
- ⭕ Many other ….
CRISP is ❌ NOT for:
- ❌ Multimodal prediction. Use this instead!
- ❌ Sequential mixed methods research, where qualitative and quantitative data are collected and analyzed in separate phases.
- ❌ Convergent parallel mixed method designs where qualitative and quantitative data are collected simultaneously but analyzed separately.
💻 Installation
pip install crisp-t
Recommended (for Machine Learning features):
pip install crisp-t[ml]
Optional (for XGBoost):
pip install crisp-t[xg]
# Mac users: brew install libomp
🚀 Usage
CRISP-T provides three main CLI tools. See the CLI Cheatsheet for a full list of commands.
1. crisp (Analysis)
The main tool for data import and analysis.
- Import Data:
crisp --source ./data --out ./corpus - Analyze Text:
crisp --inp ./corpus --topics --sentiment - Analyze Numbers:
crisp --inp ./corpus --kmeans --regression
2. crispviz (Visualization)
Generates charts and graphs from your analysis.
- Word Cloud:
crispviz --inp ./corpus --wordcloud --out ./viz - Interactive Topics:
crispviz --inp ./corpus --ldavis --out ./viz
3. crispt (Corpus Toolkit)
Manages corpus structure and detailed queries.
- Semantic Search:
crispt --inp ./corpus --semantic "query" --num 5 - Metadata:
crispt --inp ./corpus --meta "project=phase1"
🤖 MCP Server (Agentic AI)
CRISP-T includes a Model Context Protocol (MCP) server, allowing AI agents (like Claude Desktop) to interact directly with your data.
Configuration (Claude Desktop)
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"crisp-t": {
"command": "<python-path>crisp-mcp"
}
}
}
The MCP server provides tools for semantic search, topic modeling, clustering, and more, allowing you to ask your AI assistant to "analyze the trends in this corpus" directly. Most of the CLI commands are available as MCP tools.
Data model
📚 Documentation & References
- CLI Cheatsheet
- Demo / Tutorial
- Full Documentation
- Mettler et al. (2025) - Methodological Reflection
🤝 Contribution & Contact
- License: GPL-3.0
- Author: Bell Eapen (UIS)| Contact
- Social:
First presented at ICIS 2025.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crisp_t-2.0.0.tar.gz.
File metadata
- Download URL: crisp_t-2.0.0.tar.gz
- Upload date:
- Size: 959.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec5895482ffdb3764e4c7dcd984e6ef591bbac2fdfc15cb8c5af661bc59cff63
|
|
| MD5 |
b969e0fb11105db51e396e43fadd69c0
|
|
| BLAKE2b-256 |
97e78179cfd143f040c4cee355076a82b73d047768100ddb9e32b7a653df8842
|
Provenance
The following attestation bundles were made for crisp_t-2.0.0.tar.gz:
Publisher:
publish.yml on dermatologist/crisp-t
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crisp_t-2.0.0.tar.gz -
Subject digest:
ec5895482ffdb3764e4c7dcd984e6ef591bbac2fdfc15cb8c5af661bc59cff63 - Sigstore transparency entry: 870138335
- Sigstore integration time:
-
Permalink:
dermatologist/crisp-t@71924972a7cdd834aa59132ed0858dd887842417 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/dermatologist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@71924972a7cdd834aa59132ed0858dd887842417 -
Trigger Event:
release
-
Statement type:
File details
Details for the file crisp_t-2.0.0-py3-none-any.whl.
File metadata
- Download URL: crisp_t-2.0.0-py3-none-any.whl
- Upload date:
- Size: 143.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c329bbb3f7142ba8fb2cbffeccbc865ec238175fd52a93a50fb61d33d3fd5cc
|
|
| MD5 |
4570154fa97e14e391542abcdb9e3f39
|
|
| BLAKE2b-256 |
956020a5072788fd85615ee3d8fcec87acf825648f587f11a52651fab5703ef5
|
Provenance
The following attestation bundles were made for crisp_t-2.0.0-py3-none-any.whl:
Publisher:
publish.yml on dermatologist/crisp-t
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crisp_t-2.0.0-py3-none-any.whl -
Subject digest:
8c329bbb3f7142ba8fb2cbffeccbc865ec238175fd52a93a50fb61d33d3fd5cc - Sigstore transparency entry: 870138338
- Sigstore integration time:
-
Permalink:
dermatologist/crisp-t@71924972a7cdd834aa59132ed0858dd887842417 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/dermatologist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@71924972a7cdd834aa59132ed0858dd887842417 -
Trigger Event:
release
-
Statement type: