Exploration notebook added
This commit is contained in:
102
Sentiment_Research_Exploration.py
Normal file
102
Sentiment_Research_Exploration.py
Normal file
@@ -0,0 +1,102 @@
|
||||
import marimo
|
||||
|
||||
__generated_with = "0.18.0"
|
||||
app = marimo.App(width="medium")
|
||||
|
||||
|
||||
@app.cell
|
||||
def _():
|
||||
import marimo as mo
|
||||
return (mo,)
|
||||
|
||||
|
||||
@app.cell(hide_code=True)
|
||||
def _(mo):
|
||||
mo.md(r"""
|
||||
# Sentiment & Thematic Analysis of Interviews Using LLMs
|
||||
|
||||
## ✅ Step 1: Transcribe Audio Interviews
|
||||
- Use a high-quality speech-to-text model:
|
||||
- [OpenAI Whisper](https://github.com/openaihttps://azure.microsoft.com/en-us/services/cognitive-services/speech-to-text context
|
||||
|
||||
---
|
||||
|
||||
## ✅ Step 2: Preprocess Text
|
||||
- Clean transcripts:
|
||||
- Remove filler words
|
||||
- Normalize punctuation
|
||||
- Segment by:
|
||||
- **Survey question triggers**
|
||||
- **Brand character mentions**
|
||||
|
||||
---
|
||||
|
||||
## ✅ Step 3: Combine Survey Data
|
||||
- Use survey responses as **metadata**:
|
||||
- Link each interview segment to corresponding survey answers
|
||||
- Helps LLM understand context (e.g., "This person rated Brand A as 'trustworthy' but said X in the interview")
|
||||
|
||||
---
|
||||
|
||||
## ✅ Step 4: Use LLM for Sentiment + Thematic Analysis
|
||||
|
||||
### **A. Sentiment Analysis**
|
||||
- Define **custom sentiment dimensions** relevant to brand characters:
|
||||
- Trustworthiness
|
||||
- Friendliness
|
||||
- Professionalism
|
||||
- Authenticity
|
||||
- Prompt the LLM with **few-shot examples**:
|
||||
- Show examples of text and classification for each dimension
|
||||
- Example output format:
|
||||
```json
|
||||
{
|
||||
"brand_character": "Brand A",
|
||||
"voice": "Friendly",
|
||||
"sentiment": {
|
||||
"trustworthiness": "positive",
|
||||
"friendliness": "neutral",
|
||||
"professionalism": "negative"
|
||||
},
|
||||
"key_quotes": ["I felt it was too casual for a serious brand."]
|
||||
}
|
||||
""")
|
||||
return
|
||||
|
||||
|
||||
@app.cell
|
||||
def _(mo):
|
||||
mo.md(r"""
|
||||
# Findings from Foundational Research Report
|
||||
|
||||
## Brand character
|
||||
|
||||
### Brand tone (Foundation research delivery v1 for more details) (we need to provide the LLM with definitions of these attributes)
|
||||
- Confident
|
||||
- Progressive
|
||||
- Clear
|
||||
- Intentional
|
||||
|
||||
### Six CDA brand character personalities
|
||||
- The bank teller: patient, grounded, down-to-earth, knowledgable, stable, steady, balanced, competent
|
||||
- The familiar friend: warm, friendly, approachable, familiar, casual, appreciative, benevolent
|
||||
- The coach: empowering, encouraging, caring, positive, optimistic, guiding, reassuring
|
||||
- The personal assistant: proactive, progressive, cooperative, intentional, deliberate, resourceful, attentive adaptive
|
||||
- The engineer: clear, modest, savvy, plainspoken, straight forward, direct, practical, transparent
|
||||
- The counselor: confident, calm, reliable, dependable, respectable, reassuring, upright
|
||||
|
||||
### Personality model alternative dimensions (dimensions which were used to defined the six characters)
|
||||
- Approachable: friendly, warm, welcoming
|
||||
- Social-entertaining: humorous, playful, engaging
|
||||
- Social-inclined: eager to converse, talkative, socially oriented
|
||||
- Social assisting: supportive, empathetic, encouraging
|
||||
- Self-conscious: cautious, modest, hesitant
|
||||
- Artifical: robotic, mechanical, lacking human-like warmth
|
||||
|
||||
## Voice
|
||||
""")
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run()
|
||||
Reference in New Issue
Block a user