EN BM 中文

VibeFlow

Why naming a lecturer is the hardest thing to moderate

Generic moderation APIs have no concept of a named person. On a Malaysian confession page, that is most of your legal risk.

By the VibeFlow team · · Updated · 5 min read

Ask a general moderation API whether "Tan is unfair in grading" is harmful and it will tell you no. There is no slur, no threat, no explicit content. By its taxonomy the post is clean.

On a university confession page that post is the whole problem. It identifies a real person and accuses them of something, and it is the kind of post that turns into a complaint to your faculty.

Detecting it needs local knowledge, not a bigger model. A surname alone can identify someone in a small community. "Tan", "Lim", "Wong" next to a word about grading or a class is a named person; the same surnames in "SJK(C) Woon Hwa" or "Bandar Baru Kangkar Pulai" are a school and a neighbourhood.

VibeFlow checks for the shapes that matter here:

  • Honorific plus name — Dr, Prof, Encik, Puan, Cikgu, Ustaz, Ustazah, Haji.
  • bin / binti / bte lineage markers.
  • A known Malaysian Chinese, Malay or Indian surname sitting near an educational context word — taught, class, grade, fail, unfair, biased, cikgu, pensyarah.
  • Chinese character name sequences next to the same context words.

Just as important is what it does not flag: place names, school and institution names, organisation and event names, and the contact people listed on a legitimate event poster. A camp announcement with a coordinator's name and phone number is not a named-person attack, and a moderation queue that treats it as one gets ignored within a week.

A regex catches the obvious shapes cheaply; Llama 4 Scout catches the romanised spellings and unusual names the patterns miss. Both report separately in your panel, so you can see which one raised the flag.

What a flag cannot tell you

A name detector answers one narrow question: does this text contain something shaped like a person's name, near words that suggest an accusation? It does not know whether the claim is true, and it cannot see the identifications that use no name at all.

  • "The lecturer who takes the Tuesday 8am thermodynamics tutorial" names nobody and identifies exactly one person.
  • Initials, a nickname the whole course uses, a room number, a car, a job title in a small society — each is enough for the people who matter to know who is meant.
  • A post can be harmless in itself and become a named post in the comments, where someone supplies the name within the hour.

So the flag is a prompt to read carefully, not a replacement for reading. A post with no flag still needs the question asked: could the people around this person tell who it is?

What to do when a post is flagged

There are three honest options, and publishing unchanged is rarely the right one.

  • Decline it. For an accusation of misconduct against an identifiable person, this is the default. A confession page is not a complaints procedure, and the university or school has one.
  • Publish the experience without the person. "A lecturer in my faculty marked me down after I questioned a grade" keeps what the submitter needed to say and drops what made it a risk. Edit only to remove identification, never to sharpen the claim.
  • Publish as written — only when the person is named for something that cannot harm them: thanks, congratulations, a lost-and-found notice.

More from the blog

All posts → · Guides for page admins →