One of the most frustrating chatbot experiences is when the bot misunderstands your topic and won't let you correct it. "No, I asked about Nash equilibrium, not Shapley value." ReLU.chat has explicit topic correction detection.
The Problem
Standard follow-up detection assumes the user is building on the previous response. But sometimes the user is explicitly rejecting it:
- "I asked about X actually"
- "no, just X"
- "not subgame stuff"
- "wrong topic"
These require a different response strategy — not elaboration, but redirection.
Detection Patterns
Three categories of correction:
- Explicit correction: "I asked about X", "I meant X" — regex captures the target topic
- Rejection with alternative: "no, just X", "not Y, X" — extracts X as the new target
- Rejection without alternative: "not that", "wrong" — signals topic rejection
const askedAbout = query.match(
/\b(i (?:was )?asked about|i meant)\s+(.+)/i
);
Signal Layer Integration
When a correction is detected:
- The corrected topic is forced to the top of the ranking with a +0.8 boost
- The rejected topic is demoted by -0.4
- The follow-up type is set to
topic_correctionortopic_rejection - The policy response uses definition intent, neutral tone, low creativity
Why This Matters
Without correction handling, the chatbot would treat "no, I meant game theory" as a normal follow-up and try to elaborate on whatever it just said. The correction system ensures the user stays in control of the conversation direction.
Key Takeaway
Topic correction is a distinct conversational act from follow-up. Detecting it requires explicit patterns, not just similarity matching. Three regex categories cover the common cases.