Logo Lanfrica

novah-ngo/nlp-qualitative-research

Domain:

natural language processinghealthcare

Record type:

software
Creator:
nov
Host:
This project develops NLP tools to help NOVAH automate the analysis of focus group discussions (FGD) and in-depth interviews (IDI) from their educational interventions in East Africa. # NOVAH Text Mining Project Automated thematic and sentiment analysis for Intimate Partner Violence (IPV) prevention transcripts. ## Project Overview This project develops NLP tools to help NOVAH automate the analysis of focus group discussions (FGD) and in-depth interviews (IDI) from their educational interventions in East Africa. **Key Objectives:** - Thematic analysis: Identify recurring themes and concepts across transcripts - Sentiment analysis: Detect emotions and attitudes associated with themes - Automation: Reduce manual analysis time while maintaining quality insights ## Project Structure ``` novah/ ├── data/ │ ├── raw/ # Original transcript files (.docx) │ └── processed/ # Cleaned and processed data (.csv) ├── src/ │ ├── data_loader.py # Load and parse transcripts │ ├── preprocessor.py # Text cleaning and normalization │ ├── thematic_analysis.py # Topic modeling (to be created) │ └── sentiment_analysis.py # Emotion detection (to be created) ├── notebooks/ │ ├── 01_data_exploration.ipynb │ ├── 02_thematic_analysis.ipynb (to be created) │ └── 03_sentiment_analysis.ipynb (to be created) ├── models/ # Saved models ├── outputs/ │ ├── visualizations/ # Charts and graphs │ └── reports/ # Analysis reports └── requirements.txt # Python dependencies ``` ## Setup ### 1. Install Dependencies ```powershell pip install -r requirements.txt ``` ### 2. Download NLTK Data ```python import nltk nltk.download('punkt') nltk.download('stopwords') nltk.download('punkt_tab') ``` ### 3. Download spaCy Model (Optional) ```powershell python -m spacy download en_core_web_sm ``` ## Usage ### Load and Preprocess Transcripts ```python from src.data_loader import TranscriptLoader from src.preprocessor import TranscriptPreprocessor # Load transcripts loader = TranscriptLoader('data/raw') df = loader.load_all_transcripts() # Preprocess preprocessor …