Downloads · 30 days
19
31% of all-time downloads
abdulhafis/growwithme-nana-nlu
growwithme-nana-nlu is a text classification model from abdulhafis. Use it when you need a label for a piece of text. It is set up for keras. The card lists the license as apache-2.0.
On-device natural-language understanding for Nana, the AI care assistant in GrowWithMe, a maternal & child health app for Northern Ghana. When the phone has no internet, this model classifies what the caregiver said (…
Downloads · 30 days
19
31% of all-time downloads
All-time downloads
62
Public
Repo size
13.7 MB
Likes
0
Public
Click a slice to open those files.
.keras12.6 MB · 92%
From the Hugging Face model README
On-device natural-language understanding for Nana, the AI care assistant in GrowWithMe, a maternal & child health app for Northern Ghana. When the phone has no internet, this model classifies what the caregiver said (in Ghanaian English / Pidgin, with SMS-style typos) so the app can act — replies are curated in-app; the model never generates text, so it cannot hallucinate health advice.
| File | What it is |
|---|---|
model.keras | The actual trained Keras model (full precision) |
nana_nlu.tflite | Portable mobile version (dynamic-range quantized, 1032 KB) — what the app downloads |
manifest.json | The GrowWithMe model-registry manifest (feature contract, sha256) |
Input: one caregiver utterance → intent (one of 17) + subject (child / pregnancy / unknown).
Intents: start_health_check, open_add_child, open_add_pregnancy, plan_diet, read_today, get_tip, log_weight, set_reminder, greeting, help_other, ask_danger_signs, ask_feeding_question, ask_vaccine, find_clinic, open_calendar, open_tips, start_checkin
| Evaluation | Result |
|---|---|
| Held-out split (625 rows of generated data) — intent accuracy | 1.000 |
| Held-out split — subject accuracy | 0.994 |
| Hand-written HARD test (23 Pidgin sentences the generator never saw) — intent | 23/23 |
| HARD test — subject | 22/23 |
Training data: 5201 examples from a Ghana-grounded generator (Pidgin constructions, SMS noise, local foods, hard negatives) + optional LLM distillation.
Input is an L2-normalized 8192-dim hashed bag of features:
lowercase; [^a-z0-9' ]→space; word unigrams u:tok, bigrams b:t1_t2,
char trigrams c:xyz of ^tok$; bucket = FNV-1a-32(feature) % 8192.
Output tensor = [17 intent probs] + [3 subject probs] concatenated.
Reference implementations: ml/train_nana_nlu.ipynb (Python) and
mobile/lib/data/model/nlu_service.dart (Dart) in the GrowWithMe repo.