7 min read

We Made Every Sentence in Your Past Mistakes Searchable, Word by Word

Most vocab apps treat a saved sentence as one frozen string. Tap it, get a definition, or nothing. We split every saved sentence into the chunks that are actually worth studying, and let you tap any one of them to look it up — without leaving the card.

Quick answer: When SpeakShark catches a sentence-level mistake in your speaking session — like "I doing really well or I feel great" — most apps would save that as one opaque string and let you stare at it. We split every saved item into the phrases and words that are actually worth looking up, hide the boring function words, and turn each meaningful chunk into a clickable chip that opens the full dictionary popup. Try it on a free account — the Vocabulary tab in Library is where it lives.

I want to talk about a small UX detail in SpeakShark that I think makes a disproportionate difference to how much learners actually use their saved mistakes — and why it took us four iterations to get right.

The problem with sentence-length vocab items

When you finish a Daily Talk conversation, the AI saves your mistakes to your Vocabulary bank. Some of those mistakes are clean single-word substitutions:

I winned → ✓ I won

Easy. The card shows "won," you tap it, you get the dictionary entry, you move on.

But a lot of mistakes aren't single words. They're sentence fragments:

"that i am doing well or that i feel great" → ✓ "that I'm doing really well, or that I feel great"

You can't look that up. A standard dictionary returns nothing useful for a clause that long. So historically, sentence-length cards just sat there — frozen text, no audio button, no lookup, no path forward for the learner.

The first version of our Vocabulary tab was honest about this: long items got a card with no interactivity. The user could read the correction, that was it. A big chunk of the bank was essentially dead text.

That's the problem we set out to fix.

What "tokenisation" means here

Tokenisation in language tooling usually means splitting text into atomic tokens — words, punctuation, etc. We do that, but with two ESL-specific twists:

  1. Hide function words. Articles, pronouns and auxiliaries ("the", "is", "I", "you", "a", "of") are not learnable vocabulary. A Vietnamese intermediate learner doesn't need to look up "the." Hiding them cuts noise dramatically.

  2. Preserve natural phrases. Collocations and phrasal verbs are the part of vocabulary that ESL learners actually need to study. "Doing really well" is one learnable unit. Breaking it into ["doing", "really", "well"] loses the natural English pairing. So we keep multi-word phrases intact wherever the original sentence used them as a phrase, and offer the individual words as a secondary option.

The result: tapping on a sentence-length card shows you the chips that are actually worth studying — and skips the ones you already know.

A worked example

Saved sentence:

"that I am doing really well or that I feel great"

What the card shows you, top to bottom:

[ doing really well ]   [ feel great ]
[doing] [really] [well] [feel] [great]

Phrases on top — larger and bolder. Words below, smaller and dimmer.

Tap "doing really well" — popup opens with that phrase, plus the multi-layered Deep Dive (synonyms, collocations, related words).

Tap "feel great" — same thing, different phrase.

Tap a single word, get the standard entry.

Everything that wasn't useful — "that", "I", "am", "or" — never appears.

Why phrases come first

Two reasons.

One: phrases are higher-information. "Doing really well" is a complete English collocation. Looking up the phrase teaches you register (informal, friendly), pairing ("doing well" not "making well"), and intensification ("really" works here; "very" would feel off). Looking up "doing" alone gets you a verb definition you already half-know.

That gap between a bare definition and everything around a word — collocations, register, frequency — is exactly what the rebuilt dictionary popup that surfaces collocations and frequency was designed to close.

Two: phrases get visually larger chips. The natural reading order is phrases first, then individual words as a fallback. This is a small thing but I think it nudges learners toward the higher-leverage lookup.

The Quizlet-style card click

While I was rebuilding the vocab tab, I tested it on five learners. Three of them — completely independently — tried to tap the whole card to look up the word. I had buttons for everything; the card itself was a static rectangle. They all thought it should "open."

That's a strong signal. Flashcard apps (Quizlet, Anki, RemNote) trained an entire generation of learners to expect "tap the card" to mean "show me more." So we wired it up.

The whole vocab card is now a button. For short items, the click looks up the whole phrase. For longer items, it looks up the most useful sub-phrase. Inner controls — the audio speaker, the mastery toggle, the individual word chips — don't accidentally trigger the parent card lookup.

For multi-word items, we also show a quiet "Tap card for full definition" hint, plus the chip row. Either route works. The user picks whichever feels natural.

The explanation fallback

There's a quieter problem with sentence-length items: sometimes even the extracted chips don't yield a dictionary entry. Example: a tone correction like "the most natural way to say it in casual conversation." The chips might surface most natural way, but a standard dictionary doesn't have an entry for a 3-word non-phrase like that.

The popup would be empty. The user would close it and lose trust in the feature.

So we added a fallback: when the dictionary doesn't find an entry, we display the AI's saved explanation for that mistake in the popup body. That text is always meaningful — it's the AI's note about why the original was wrong, written when the mistake happened. The popup says, in effect:

"We couldn't find a dictionary entry for 'most natural way', but here's what was wrong with how you used it in your session: 'In English, we usually say the most natural way — but adding to put it makes the sentence flow better.'"

That single addition turned "empty popup = broken" into "always has content = always useful."

The junk vocab filter

While we were at it: a separate but related problem. Sometimes the AI saves obvious garbage — "n/a", "incomplete sentence", "no error", "unclear". These come from the model occasionally over-tagging a sentence that was actually fine. Pre-filter, they showed up as cards in the bank.

We drop the known-junk strings at the data layer so they never reach the user. This isn't novel — it's just hygiene. But it makes the bank trustworthy. Every card you see is one the AI actually had something to say about.

How a learner uses this now, end-to-end

A real workflow:

  1. User has a 10-minute Daily Talk conversation.
  2. The AI catches several mistakes during the session. Some are sentence-length, some are single-word.
  3. After the session ends, all of them land in the Vocabulary tab.
  4. User opens Library → Vocabulary later that day.
  5. Sticky search bar at the top — also available for ad-hoc lookups.
  6. User scrolls cards. Sees a sentence-length card: "I doing really well or I feel great"
  7. They tap "doing really well" chip.
  8. The Dictionary popup opens with the phrase, synonyms, collocations, adjectives, related words.
  9. They tap the synonym "thriving" — popup re-opens on "thriving."
  10. They tap a chip from "described as" — popup shows that word.
  11. Two minutes later, they've drilled five levels deep through their own spoken English's natural lexical neighbourhood.
  12. They close the popup. Tap the mastery toggle on the card. New → Learning → eventually Mastered.

Every step in here was previously a dead end. Sentence-level cards used to sit static. Now they're entry points.

Those entry points cover the vocabulary side of a mistake; for the grammar side, a companion Grammar Reference links each past error to the exact rule it broke, so you can see why the sentence sounded off in the first place.

What we deliberately don't do

  • No AI re-tokenisation. We considered sending each saved sentence to an LLM for "find the learnable chunks." Decided against it — adds latency, adds cost, and the simpler approach gets us almost all of the value with no runtime overhead. The small fraction we lose are things like idioms with internal function words ("end of the day" → only "end" + "day" survive). For those, the whole-card click still works.
  • No spaced-repetition scheduling. Vocabulary tab is for review on demand, not flashcards on a schedule. If users ask for SR, we'll layer it on, but the bar for adding that complexity is high — most learners use the bank organically, not as an Anki-style queue.
  • No translation. Every chip looks up the English dictionary entry. We don't auto-translate to Vietnamese or the user's native language. Two reasons: (1) the user picked English to learn; making it bilingual incentivises lazy comprehension, (2) it adds latency and a translation provider dependency. Users who want translation can highlight and use the OS dictionary on iOS or Android.

What's next

We're considering letting users add their own vocab items — not just AI-caught mistakes. The mechanic: highlight any word in any transcript (or any blog post on this site), tap "Add to bank," it joins your saved items with no error context. Useful for words you encountered but want to memorise, separate from things you got wrong.

We're also tracking which kinds of chips get tapped the most. If a learner taps phrasal-verb-style chips more than single-word chips, that's a signal that phrasal verb practice would be the highest-leverage drill for them. We'll wire that into the personalisation layer over the next few weeks.

Try it

Sign up free. Have a 5-minute Daily Talk. Check the Vocabulary tab the next morning. Tap a sentence-level card. Tap a chip inside it. Tap a chip in the popup. See how far down you can drill before you stop learning.

The point: your past mistakes aren't a record of failure. They're a personalised dictionary of exactly the words you need next. We just made it tappable.

Keep reading