A speaker who restarts a phrase and changes its destination leaves a shared prefix and a divergence. The detector indexes candidates by a repeated run of three identical words (verify.ts:199, semantic.ts uses the same), so a retake that diverges at word 3 has no repeating trigram and is invisible.
Measured case
At ~91.5s of the Cueva recording:
"abrimos la guia para vincular, abrimos la opcion para vincular un dispositivo"
Normalised, the only runs occurring twice are the bigrams abrimos la and para vincular. No trigram repeats. Confirmed by running the detector over the real text: zero findings from findRepeatedPhrases.
Hunter's own annotated list of this material contains five more of this shape:
- "la ia tendria, la ia tendria acceso"
- "pero esta es muy interesante / pero esto es muy granular"
- "voy a agregar una feature para... para detectar"
- "para simplemente cifrar / para simplemente detectar con asteriscos"
- "voy a iterar normal para... para hacerlo mas cool"
Why this is not just a smaller RUN_LENGTH
Dropping to 2 words wholesale takes false positives from 8 to 64, nearly all of them 0-1 content-word connectives ("para que", "voy a", "de normal"). The content-word floor has to stay on the 2-word runs.
cli.ts:821 already describes this stacked-filler shape as intended behaviour; the implementation ships only the 3-word scan.
Also worth noting
growMatch (verify.ts:227) already computes the divergence point — it is the loop's exit condition — and discards it. For this class that index is the answer: the shared prefix runs up to it, and the second attempt's start is where the cut ends.
Depends on #71: with the intra-line skip in place, none of this is reachable anyway.
A speaker who restarts a phrase and changes its destination leaves a shared prefix and a divergence. The detector indexes candidates by a repeated run of three identical words (
verify.ts:199,semantic.tsuses the same), so a retake that diverges at word 3 has no repeating trigram and is invisible.Measured case
At ~91.5s of the Cueva recording:
Normalised, the only runs occurring twice are the bigrams
abrimos laandpara vincular. No trigram repeats. Confirmed by running the detector over the real text: zero findings fromfindRepeatedPhrases.Hunter's own annotated list of this material contains five more of this shape:
Why this is not just a smaller RUN_LENGTH
Dropping to 2 words wholesale takes false positives from 8 to 64, nearly all of them 0-1 content-word connectives ("para que", "voy a", "de normal"). The content-word floor has to stay on the 2-word runs.
cli.ts:821already describes this stacked-filler shape as intended behaviour; the implementation ships only the 3-word scan.Also worth noting
growMatch(verify.ts:227) already computes the divergence point — it is the loop's exit condition — and discards it. For this class that index is the answer: the shared prefix runs up to it, and the second attempt's start is where the cut ends.Depends on #71: with the intra-line skip in place, none of this is reachable anyway.