小象 v0.2

Reading intent from a turn's words alone

象 (xiàng, elephant) reads the turns I type to software agents and labels each fragment with what it is doing: proposing, explaining, approving, reporting a problem, and so on. 小象 (little elephant) is a classical model that tries to recover those labels from the words alone, with no language model and no database, so that it can run on anyone's logs.

It is deliberately simple: naive Bayes over words and word pairs, plus a short hand-written list of general English speech-act cues (below). It is expected to do poorly, and the point is to measure where. Try a sentence:

How well it does

Trained and tested on 2310 labelled fragments from 674 of my turns, with 26 intents. Each test holds out whole turns (5-fold cross-validation), so no fragment is scored by a model that saw its neighbours.

The labels are 象's own readings, and none has yet been confirmed by me. So some errors below are the model's, and some are disagreement between labellers.

Per intent

intentfragmentsrecallprecision
propose3510.830.23
explain2690.350.21
report-problem1970.340.41
approve1880.490.73
constrain1880.160.33
clarify1810.040.30
ask-action1670.250.39
report1380.110.47
qualify1330.000.00
disagree790.130.45
redirect690.030.67
delegate640.020.20
verify610.030.40
extend480.081.00
defer460.000.00
continue410.120.83
prioritize400.050.67
collect260.000.00
retract140.000.00
ask-information20.000.00
challenge20.000.00
provide-reference20.000.00
concede10.000.00
contrast10.000.00
reframe10.000.00
withdraw10.000.00

Most common mistakes

labelledpredictedcount
explainpropose141
constrainpropose115
ask-actionpropose95
clarifypropose90
report-problempropose72
qualifypropose71
reportpropose61
clarifyexplain59
approvepropose50
report-problemexplain42

Intent collisions

The same short text labelled with different intents. No classifier that reads only the words can get all of these right; they need context.

textlabels
okapprove 11, continue 2
please continuecontinue 2, ask-action 1
hmreport 1, continue 1, qualify 1
just say hiask-action 1, verify 1
quotecollect 1, explain 1

Hand-written cues

Words whose force is the same in any conversation, added as pseudo-counts (5 each) rather than learned. Version 0.1 read “I reject your claim” as approval: “reject” occurs in only four of my fragments, three of them about papers or ideas being rejected, so it never entered the model, and the decision rested on “I” and “your”.

intentcues
disagreei reject, reject, i disagree, disagree, that's wrong, wrong, incorrect, i object, not right
approvei agree, agree, sounds good, looks good, that's right, approved, go ahead, great
report-problemdoesn't work, not working, broken, failed, fails, bug
ask-actioncould you, can you, would you

When a sentence contains only very common words, the page says so instead of guessing.

Model: 2476 tokens, each seen in at least 3 separate turns, with identifiers, names of people and places, and anything a secret scanner flags removed. Built 2026-09-29.