Align behavioral event annotation protocol

This commit is contained in:
Xin Wang
2026-09-14 23:43:28 +08:00
parent 06b5e6c385
commit 2f9ccfad88
3 changed files with 123 additions and 129 deletions
+6 -5
View File
@@ -24,8 +24,8 @@ python3 prepare_easycom_eot_int_review.py \
The generator emits two independent files:
- `easycom_eot_int_candidates.jsonl` contains EOT opportunities that pair a
non-wearer release with a later floor-level wearer `0->1` behavior anchor
- `easycom_eot_int_candidates.jsonl` contains floor-level wearer `0->1`
behavior anchors retrospectively paired with a preceding non-wearer release
(`WEARER_ONSET`, `EOT_OPPORTUNITY_CANDIDATE`), only episode-ending wearer
`1->0` boundaries where a new non-wearer onset satisfies
`wearer_floor_start < other_onset < wearer_offset` and the same activity
@@ -49,9 +49,10 @@ continues across the resumed onset conservatively preserves a new wearer-entry
candidate. Every decision is stored in `temporal_evidence`, including the raw
gap, feedback IDs, competing IDs, threshold, and `floor_episode_merged` flag.
After each non-wearer release, EOT construction scans forward until a
floor-level wearer onset or a competing non-wearer onset. Silence length alone
does not invalidate the opportunity. Each primary EOT candidate stores both
For each floor-level wearer onset, EOT construction searches backward for the
most recent non-wearer release and rejects the pair if wearer speech or a
competing non-wearer onset intervenes. Silence length alone does not invalidate
the opportunity. Each primary EOT candidate stores both
`opportunity_anchor_seconds` and `behavior_anchor_seconds`, plus their response
delay.