Skip to content

rule-of-three fires on enumerations of codes and numbers, which are not tricolons #100

Description

@peopleworks

The text that was flagged

Two findings, from one support-ticket reply of 1,862 words:

...and the same is true of 2324, 2425 and 2526.
...dropping HIGH, SCHOOL, SCH, HS, SR, SENIOR, COMMUNITY, COMM, CMTY and CHD, and
calls them the same school when one set of words contains the other.

The first is a list of financial aid year codes. The second is a list of the
words a matching rule strips. Neither is a rhetorical tricolon; both are
enumerations of data.

Which rule fired

rhet.rule-of-three

"regex": "\\b(\\w+), (\\w+),? and (\\w+)[.,;]"

Language

English

Why this is a false positive

The tell the catalog describes is a rhetorical tricolon: three adjectives or
nouns chosen for cadence, "fast, simple, and powerful". \w+ also matches a
digit run and an all-caps identifier, so the rule cannot tell that cadence from
an author listing three values.

This is not the same report as #31. That one was about the rule's overall rate
and was closed by giving it a humanRatePer1000, which works: both findings
above came back atHumanRate: true and the document scored 0. So the score is
right. What is left is report noise, on exactly the class of sentence where the
writer had no stylistic choice to make.

Measured against this repo's own calibration corpus (Docs/Calibration/texts,
307 texts):

rhet.rule-of-three matches 236, across 125 of the 307 texts
matches where all three items are digits, or all-caps of length >= 2 18
texts whose only hits are those enumerations 6

The 18 are all from published PLOS papers:

DPM1, DPM2 and DPM3.          plos-0216849
CD31, CD45, and CD56,         plos-0222683
ARS, RQR and RRS.             plos-0223057
IMI, CTD, and THX,            plos-0223093
6, 6 and 7,                   plos-0222235
25, 26, and 28.               plos-0223139
10, 15, and 20.               plos-3000418

6, 6 and 7 is not a tricolon under any reading, and the first item repeats.

Where you saw it

CLI (signsofai check)

Suggested narrowing

Skip a match when all three captures are the same kind of non-prose token:

  • all three are digit runs, or
  • all three are all-caps of length >= 2

That removes the 18 above and leaves "fast, simple, and powerful" untouched,
because those captures are lower-case prose words. It is the narrowing #31 named
as option 2 but never got a concrete rule for.

Two things worth deciding rather than assuming, which is why this is a report
and not a PR:

  1. Mixed lists. BMI, BAZ and MARA is all-caps and is caught. Alice, Bob and Carol is prose and is not, correctly. But CD31, CD45, and cells mixes
    them; requiring all three to be non-prose is the conservative choice and is
    what the numbers above measure.
  2. Whether 18 of 236 is worth a rule change at all. It is 7.6% of the hits
    and it clears 6 texts completely. Small, but it is the subset where the
    finding can never be right, and those are the ones a reader loses trust over.

Provenance

Found while screening a real client deliverable with the CLI. The flagged text
is my own writing, not anyone else's.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions