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:

  1. Explicit correction: "I asked about X", "I meant X" — regex captures the target topic
  2. Rejection with alternative: "no, just X", "not Y, X" — extracts X as the new target
  3. 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:

  1. The corrected topic is forced to the top of the ranking with a +0.8 boost
  2. The rejected topic is demoted by -0.4
  3. The follow-up type is set to topic_correction or topic_rejection
  4. 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.