👉 Try the demo: https://github.com/LM-Kit/lm-kit-net-samples/tree/main/console_net/text-analysis/sentiment-analysis/customer_feedback_sentiment
Customer Feedback Sentiment Dashboard for C# .NET Applications
🎯 Purpose of the Demo
An interactive console application that classifies a batch of customer reviews and turns the per-review verdicts into an actionable dashboard: per-product and per-source segmentation, sorted worst-first, with the strongest negatives surfaced for follow-up. Built on LM-Kit.NET's fine-tuned lmkit-sentiment-analysis classifier.
All inference runs on-device. No cloud round-trip, no per-token billing.
👥 Industry Target Audience
- Product teams tracking weekly NPS and app-store reviews.
- Customer experience triaging support survey comments.
- Marketing monitoring channel-by-channel sentiment.
- Healthcare / education analysing patient or student feedback at scale.
🚀 Problem Solved
A weekly stream of hundreds of reviews is impossible to triage manually. Existing keyword scoring drifts on sarcasm and slang; general-purpose LLMs are slow and expensive at this scale. The fine-tuned LM-Kit classifier produces a calibrated verdict per review (and an optional 3-class neu/pos/neg breakdown), and the demo turns those verdicts into a segmented dashboard the team can act on.
💻 Application Overview
Interactive menu — no command-line arguments — with three input modes plus an opt-in 3-class toggle:
| Mode | What it does |
|---|---|
| Live | Type one review at a time; immediate verdict + confidence. |
| Sample | Run the built-in 12-review mixed dataset (2 products × 3 sources) end-to-end. |
| File | Path-prompt for either a flat .txt (one review per line) or a structured .csv (id,product,source,date,text). |
| Quit | Exit. |
At startup the demo asks whether to enable the 3-class mode (positive / neutral / negative). Binary mode is the default.
After any batch the dashboard prints:
- Overall pos / neu / neg counts and percentages.
- Per-product table sorted by negative rate (worst first).
- Per-source table sorted by negative rate.
- Top 5 strongest negatives with product/source tag and confidence.
Optional CSV export writes both a per-row file (<name>_classified.csv) and a per-segment summary (<name>_summary.csv).
✨ Key Features
SentimentAnalysis.GetSentimentCategory+.Confidence: one call per review.NeutralSupport: toggleable 3-class output for nuance-sensitive use cases.- Interactive, no flags: every input is a console prompt.
- CSV outputs ready to drop into a BI dashboard or auto-triage queue.
- Segmented dashboard so the team knows where to focus this week.
🧠 Model
lmkit-sentiment-analysis— fine-tuned for English binary + 3-class sentiment.
🛠️ Getting Started
📋 Prerequisites
- .NET 8.0 or later
- ~1 GB free disk for the model download on first run
▶️ Running the Application
git clone https://github.com/LM-Kit/lm-kit-net-samples
cd lm-kit-net-samples/console_net/text-analysis/sentiment-analysis/customer_feedback_sentiment
dotnet run
The app prompts for everything; no arguments are required.
💡 Example Session
╔══════════════════════════════════════════════════╗
║ Customer Feedback Sentiment Dashboard ║
╚══════════════════════════════════════════════════╝
Classifier mode: binary (pos / neg)
1 / live Classify one review at a time
2 / sample Run the built-in 12-review dataset
3 / file Classify a flat .txt or a structured .csv file
q / quit Exit
> 2
--- Built-in sample (12 reviews) ---
classified 12/12
Dashboard
Overall: 12 reviews pos=6 (50.0%) neu=0 (0.0%) neg=6 (50.0%)
By product (worst first):
Segment Total Pos Neu Neg Neg%
Web App 6 2 0 4 66.7%
Mobile App 6 4 0 2 33.3%
...
Strongest negatives:
# 3 [Web App/Survey] (98%) Pricing tripled overnight and the new tier ...