Skip to main content

Qualitative Research support tools in Python!

Project description

🔍 CRISP-T (Sense-making from Text and Numbers!)

Release Build status codecov Commit activity License Downloads

Generated by github-dependents-info Wiki Documentation

✨ Have you been co-creating reality with adaptive AI vibes?

TL;DR CRISP-T is a qualitative research method and a toolkit to perform mixed data (text + numeric) analytics for computational triangulation and sense-making. More importantly, CRISP brings "vibe analytics" "SKILLS" for mixed data with an AI agent, adopting an adaptive epistomology.

👉 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"

👉 View the Step-by-Step Demo


🤖 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

crisp-t


📚 Documentation & References

🤝 Contribution & Contact

First presented at ICIS 2025.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crisp_t-2.2.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crisp_t-2.2.0-py3-none-any.whl (151.4 kB view details)

Uploaded Python 3

File details

Details for the file crisp_t-2.2.0.tar.gz.

File metadata

  • Download URL: crisp_t-2.2.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for crisp_t-2.2.0.tar.gz
Algorithm Hash digest
SHA256 fc8ff2a9a7a5553f330d445e1669f9f99d054c2fc36cf583a1ecb7c906e01b56
MD5 338aeda62d6fd75ff899805ed7b8891d
BLAKE2b-256 8c8d6dcc8235f5056a2a402f2347461f0eebf1020cbdcc8d7aa1176b38594d95

See more details on using hashes here.

Provenance

The following attestation bundles were made for crisp_t-2.2.0.tar.gz:

Publisher: publish.yml on dermatologist/crisp-t

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file crisp_t-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: crisp_t-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 151.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for crisp_t-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8637cd84813030c66b82c8821b9db4f9d7df6c1d4cebea1e0e9086004e1321f8
MD5 9630bb1bb08b516d21858ad6191f3986
BLAKE2b-256 b5aa28548142b2112265892b60b67be8f350b25d900b29ff8ffc75a20b48e6a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for crisp_t-2.2.0-py3-none-any.whl:

Publisher: publish.yml on dermatologist/crisp-t

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page