Add story-to-pack research and a structured situation review

Research toward building a content pack from a story corpus, kept on its own
branch and independent of the game. Records the selection experiments against
blind labels, and settles selection as gate G2 followed by a human review:
review.py writes REVIEW.md and a review.json form, apply_review.py checks the
filled form and writes situations.json for the next stage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6UDQ9o6L6Ey173U7XVou6
This commit is contained in:
JesseMarkowitz
2026-09-15 06:59:35 -04:00
co-authored by Claude Opus 5
parent d84ae495f4
commit fa3769d0fe
112 changed files with 79868 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
# story-to-pack lives on its own branch and is never imported by the game.
# The repo root ignores *.log. Here the run logs are the record of results, so keep them.
!*.log
# Inference-host telemetry: large, and it names the host.
probe/gpu-logs/
# Rebuildable caches — gate2.py, gate3.py and signals.py recreate them on first use.
probe/sim.pkl
probe/null.pkl
probe/null-samples.pkl
probe/coassoc.json
__pycache__/
+275
View File
@@ -0,0 +1,275 @@
# story-to-pack — design note
A tool that builds a playable The Ladder content pack from a corpus of stories.
**Status (2026-09-14): direction agreed, nothing built.** The decisions below were made in
conversation on 2026-09-10 and had until now existed only in that session's transcript. The
architecture rests on one assumption that has so far **failed** its first test (see
[Assumptions](#assumptions-under-test)); nothing past the probes should be built until it passes.
This is a design note, not a specification. It records what was decided and why, so that the next
step is argued from it rather than re-derived.
---
## What it is for
Feed it a body of fiction set in one world — say 20–30 short stories — plus a handful of structural
numbers, and get back a content pack the game can load and that its own conformance checks judge
viable. Then play it, hand-edit it, and retune it from play logs.
The Ladder's founding commitment (Planning/01 §9) is that a new setting is purely data. This tool
tests how far that goes: whether "data" can come from a corpus rather than a designer.
## Decisions
| Area | Decision |
| --- | --- |
| **Inputs** | A thematically coherent corpus (one world), 20–30 stories of 2–15 pages. Plus: number of stages, turns per stage, number of promotions, number of characters, and a one-line player role written by the designer. Early development uses much less text. |
| **Corpus** | Saved permanently beside the pack. Read once, at fixed depth. **Provenance recorded:** which chunks fed which event, even though nothing reads it yet. |
| **Artifact** | **One.** The generated pack is the source of truth from the moment it is written. The designer and the tool both edit that same file in place. Seed text is a seed, not a source: there is no regenerate-and-merge. |
| **Pipeline** | Chunk → embed → cluster → select recurring situations → extract prose → assign state paths and directions → search numbers → verify → repair. |
| **The model's job** | Selection and classification. **It never chooses a number.** Its generative tasks are entity substitution and, only where needed, filling out options. |
| **Inference** | Once, up front, checkpointed and cached. The numeric search and every repair iteration are pure computation and never call a model. This is what makes a small local model viable. |
| **Stat vocabulary** | A fixed mechanical spine (currency, debt, standing, two skills, flags, notable, per-character relationship stats). The corpus supplies the *labels*, not the structure. |
| **Cast** | Recurring **roles** harvested across the corpus (the authority, the rival, the peer), not people from any one story. Characters are minted for the roles and entity names are substituted in extracted prose. |
| **Stages** | Assigned automatically by the protagonist's standing in each scene, binned and balanced across stages. Overridable by hand. |
| **Event count** | Derived from turns per stage, with a sufficiency report *before* inference is spent: "this corpus yields N situations, the pack needs M". |
| **Options** | 3–5 per event: 1–3 fixed archetypes ("say nothing"), 1–3 drawn from other scenes in the cluster, and 1–3 generated only to fill gaps. Deduplicated **mechanically** — two options with the same effects are one option. |
| **Description variants** | An event can carry several descriptions, sharing one general option set. This needs an engine change (see Open questions). |
| **Viability** | Fully automatic — a human does not have to play a pack for it to count as viable. A **graded score**, not pass/fail, so extra time improves it. The search **always keeps the best-scoring candidate**, never the most recent. When it cannot reach viable, it reports precisely which checks it could not satisfy. |
| **Time and quality** | Start fast and iterate; later, overnight runs for higher quality. Time buys **numeric search depth and prose fidelity** — not corpus reach. |
| **Retuning** | Deterministic, driven by the play log `npm run analyze` already reads. Not model-mediated. |
| **Extension** | Pulling more corpus into an existing pack is **out of scope** for now. Provenance is recorded so it stays possible. |
| **Home** | `theladder/tools/`, never imported by `src/`, `content/` or `test/`. Its own dependencies stay out of the game. |
| **Hardware** | Must be able to run on a low-powered local inference host, taking longer if it has to. |
## Why the hard part is numbers, not prose
Counted from the two hand-written packs:
| | Corporate Ladder | The Frontier |
| --- | --- | --- |
| Prose strings | 219 | 211 |
| Numeric decisions | 347 | 427 |
| Stable ids | 125 | 120 |
A pack is roughly 35% prose and 65% numbers, and every defect the project has hit — the debt trap,
the rent retune, the negotiation cliff — lived in the numbers. The corpus supplies the prose; the
tool has to invent the rest, and has to be able to show it is not a trap.
Randomising The Frontier's numbers while keeping its prose and structure: random magnitudes pass the
conformance checks 3% of the time, random directions 0%, and a crude four-rule repair loop 42% (5 of
12 runs converged). The search space is not hopeless, but it is not a broad basin either — hence a
real search against a graded score.
## Why recurrence is the central problem
Hand-written packs are almost entirely **recurring** situations: 29 of 31 events in Corporate Ladder
and 28 of 29 in The Frontier can fire more than once, and a 41-turn playtest saw 12 distinct
situations an average of 3.4 times each. Stories are the opposite: every scene happens once.
So selection is not "pick 30 good scenes". It is **find the situations this corpus keeps returning
to**. Twenty stories in one world should contain eight variations on "a superior asks you to cover
something up"; clustering those is what yields one recurring event with several descriptions. One
long novel is the hard case and is not the target.
## Boundaries
- **Planning/01 §10 is not violated by a hosted model here.** §10 says the *game* must never require
a hosted inference service. The generator is a build-time tool whose output is plain data with no
runtime dependency; a shipped `.html` still plays offline. Record this in theladder's DECISIONS
when the tool lands there.
- **There are two provider slots, not one.** Embeddings and generation are configured separately.
Anthropic offers generation but no embeddings API, so any mix must keep embeddings local.
- **The inference host is shared.** Other work sends requests to the same server. Clients run one
request at a time with a pause between requests, set a short `keep_alive`, and read the host from
the environment (`STP_OLLAMA`) — never from a tracked file. Every run is agreed with its owner
before it starts.
## Assumptions under test
The architecture rests on three assumptions. All three are cheap to test, and the first could
invalidate everything else.
### 1. A coherent corpus clusters into recurring situations — FAILED in naive form
**Test (2026-09-10):** O. Henry's *Four Million* cycle — four Gutenberg volumes, 94 stories, 244,690
words — cut into 838 scenes of ~300 words, embedded with `nomic-embed-text`, clustered with k-means.
**Result:** at the best k, 18 clusters were both tight and drawn from four or more stories. But
reading them showed most were 60–79% **one** story plus stragglers. Measured by concentration, only
**3 of 18** were genuinely recurring, covering **2% of the corpus**. At scene length, embedding
similarity tracks *which story a scene is from* — names, setting, narrator voice — not *what kind of
situation it is*.
**Fix under test:** summarise each scene into one generic sentence with no proper names, embed the
summary, and cluster those instead. This probe is in `probe/`.
**Baseline re-measured (2026-09-14)** on the rebuilt corpus — prose embeddings made on a GPU host,
same model, same 838 chunks. Seed 11 at k = 100 reproduces the 2026-09-10 figures exactly (18 sharp
clusters spanning ≥ 4 stories, 3 genuinely recurring, 2% coverage). Seeds 12 and 13 give 7 and 7,
covering 8% and 10%: the old 2% was one unlucky initialisation, and the true baseline is poor rather
than hopeless.
**Pass mark, fixed before any summary existed.** Judged at **k = 60 and k = 100**, medians over
three seeds, summary embeddings against prose embeddings as reported by `probe/measure.py`:
1. Median dominant-story share of clusters of size ≥ 5 falls to **40% or below** at both k.
2. **Tight-recurring coverage** — recurring clusters (≥ 4 stories, dominant ≤ 40%) whose coherence is
at or above that file's median cluster — reaches **at least 10% of the corpus** at both k. (A
relative bar was written first and dropped once the baseline came in at 2% and 0%, where "double"
means nothing. 10% of 838 scenes is ~84 — enough raw material for a stage's worth of situations.)
3. Reading three sampled tight-recurring clusters, each is recognisably **one kind of situation**,
not a prose register ("men walking through the city") or a vocabulary cluster.
The prose baseline numbers the first two are judged against are in `probe/measure-prose.log`.
**Result (2026-09-14): criteria 1 and 2 pass decisively; criterion 3 passes only in part.**
| k | Median dominant share, prose → summaries | Tight-recurring coverage, prose → summaries |
| --- | --- | --- |
| 60 | 57% → **22%** | 2% → **26%** |
| 100 | 67% → **28%** | 0% → **19%** |
Pipeline as run: `qwen2.5:3b-instruct` summaries with the v2 prompt (no example roles), names removed
by `strip_names.py`, embedded with `nomic-embed-text`. Logs: `probe/measure-summary.log`,
`probe/sample-k60.log`, `probe/sample-k100.log`.
Reading the seeded samples (three at each k; one cluster appeared at both, so five distinct):
- **Clearly one situation (2):** a spouse scheming against or confronting a spouse over infidelity
(15 scenes, 10 stories); a woman made the centre of attention while men compete for her (5 scenes,
5 stories).
- **Broadly one situation (2):** a secret identity or past revealed in a romantic encounter, often over
dinner (15 scenes, 13 stories); hosts and guests jockeying for social rank at a dinner (6, 6).
- **Not a situation (1):** fortune-tellers, adventurers, a found tyre, a graft inquiry — held together
by "seeks", "fortune" and "mysterious" and dominated by three stories. It is the same cluster at
both k.
The rule as written requires every sample to read as one situation, so **strictly this is not a full
pass**, and it is recorded that way rather than rounded up.
**Follow-up: the selection step is designed and tested in [`SELECTION.md`](SELECTION.md).** A
two-signal gate (cross-story cohesion, and no single word dominating) accepted 10 clusters across
development and test, all of them situations; it rejects the vocabulary clusters this result found.
But it keeps only 5 of ~40 candidates — far short of what a pack needs — so recall is the open problem.
Three recall-recovery methods were then tested on a fresh partition and **none met its pre-registered
bar**: re-clustering found nothing new, consensus clustering found only sharp situations (3 of 3) but
too few, and prune-then-grow found 10 distinct situations with too much noise. The finding that
matters is that the gate is size-dependent in both directions, so it has to be made size-invariant
before recall can be recovered.
A second gate, G2, built for that (cohesion against a same-size random baseline, a significance test
for shared words), **failed validation on fresh data**: it accepts three to four times as many
clusters as the first gate at about the same precision (0.79), but still rejects every cluster under
10 members and still lets growth run to the cap. A fixed threshold on a z-score reverses the size bias
rather than removing it.
A third gate, G3 (a percentile against same-size random sets, plus a mandatory per-member floor),
**failed all four validation criteria and did worse than G2**: 17 accepted across fresh partitions,
only 8 of them situations. The random-set baseline turned out to be the wrong comparison — any
k-means cluster beats random scenes — and the per-member floor is noisiest, and so most lenient,
exactly where clusters are smallest.
A fourth gate, G4, had the inference model read each cluster and say which summaries share one
situation. It **failed with both `qwen2.5:3b-instruct` and `qwen3:14b`** (primary precision 0.48 and
0.52 against G2's 0.73): the models answer with abstractions ("power dynamics", "someone wants
something from someone") that most summaries fit. Observed but not pre-registered: the 14B model AND
G2 accepted 10 clusters, all situations — precise, narrow, and untested on fresh data. The substantive conclusion: summarising
before embedding **does** break the story-identity effect that sank the naive design, and most of
what clusters is recognisably situational — the recurrence premise is alive, not proven. The design
needs a **selection step that rejects vocabulary clusters**, not only a clustering step.
Known defects in this run, none large enough to change the verdict:
- `first_sentence` cut 7 of 838 summaries that begin with an initial ("E. Rushmore Coglan…") to
"E." — single-letter initials and "Gen." are not handled.
- Heavy use of "someone" is itself a shared token across summaries with many characters. Whether it
pulls clusters together has not been measured; a replacement by role or a neutral mix would test it.
- A few names that are also common words survive stripping ("Silver", "Cherry", "Grace", "the Kid").
**Why k ≥ 60, and why a tightness filter.** The first version of this pass mark said "median dominant
≤ 40% at k ≥ 40" — and the prose baseline, the approach known to fail, passed it at k = 40 (36%).
Two things were wrong. Small k forces clusters to merge stories whatever the embeddings encode: on
synthetic vectors carrying nothing but story identity, `measure.py` reports 36% at k = 25, 53% at k
= 40 and 100% at k ≥ 60, while vectors with planted cross-story situations report 11–17% at every k
≥ 40. And without a tightness filter, the loose clusters the 2026-09-10 reading identified as prose
register count as recurring. The tightness cutoff is relative to each file's own median because an
absolute cosine threshold does not transfer between 300-word scenes and one-sentence summaries.
If it fails, the recurrence premise needs rethinking before any design goes further.
### 2. A small model can classify against a closed path vocabulary
Roughly 100+ calls per pack deciding which state paths an option moves and in which direction.
Malformed or wrong output at a meaningful rate changes the design (batching, retries, a bigger
model). **Untested.**
### 3. A small model can substitute entity names without wrecking prose
The main generative task, run on every description. **Untested.**
The summarisation probe in assumption 1 incidentally gives the first evidence on 2 and 3: it asks a
small model for constrained, name-free output and the results can be read.
**First evidence (2026-09-14, `qwen2.5:3b-instruct`, two 40-scene pilots):**
- **It copies examples from the prompt into the output.** A prompt that illustrated roles with "a
clerk", "a landlady", "a rich man", "a city park" got those phrases back 18 times — in scenes
containing **none** of them, every one invented. For this probe that is worse than noise: shared
invented phrases make unrelated scenes cluster together and fake exactly the recurrence being
measured. Removing the examples brought it to 1. **Rule: prompts for a small model name no example
of the output vocabulary.**
- **It does not follow "never use a name."** 25 of 40 summaries kept names with the first prompt,
and 27 of 40 with a stricter one plus an automatic retry — the retry fired 35 times, nearly doubled
the run, and fixed almost nothing. Names are therefore removed **deterministically** afterwards
(`probe/strip_names.py`): a lexicon built from the corpus, of words seen capitalised mid-sentence
and almost never in lowercase. It misses names that are also common words ("Bill", "the Kid",
"New" in "New York"). That bears directly on assumption 3: **entity substitution should be done by
code over a lexicon, with the model's output treated as untrusted.**
- **Throughput is not the constraint.** On a GTX 1080 Ti, a scene summary takes ~0.6 s of model time
(about 1.1 s including a deliberate pause between requests), and embedding runs at ~16 texts/s.
A 838-scene corpus summarises in roughly a quarter of an hour.
## Open questions
- **Description variants need an engine change.** Events carry one description today. Scope it
before building, and record it in theladder's DECISIONS — it is the first engine change content
generation would force.
- **The test strategies hardcode the stat spine.** `theladder/test/fixtures/strategies.js` reads the
literal path `money` and the prefix `relationships.`. A pack that named its currency `coin` would
make four of six archetypes stop discriminating while the sweep still ran and reported. The fixed
spine satisfies this by construction; it is also a coupling that should be made explicit.
- **Options versus variants.** A cluster-derived option is tied to the scene it came from and may
read wrongly under the event's other descriptions. The more variants an event has, the more its
options must come from the fixed archetypes.
- **More options, harder search.** Moving from ~3.1 to ~4 options per event adds roughly 90 effect
magnitudes to a search that already converged only 5 times in 12 with crude repair.
- **Prompts may not transfer between models.** Prompts developed against a capable model are
typically under-specified for a 3B one. The small-model question stays open until it is tested on
a small model, however well a larger one does.
- **Story splitting is per-volume fiddly.** Segmentation needs no model, but each source's format
needs its own pattern. A production tool needs a report when a volume does not split cleanly.
The probe's `split.py` yields 94 stories from 98 contents entries: it silently drops titles
containing quotation marks or an em dash ("LITTLE SPECK IN GARNERED FRUIT", "THE THING'S THE PLAY",
"WHAT YOU WANT", "THE GUILTY PARTY — AN EAST SIDE TRAGEDY"). The 2026-09-10 run dropped the same
ones, so it is left alone to keep the before/after comparison exact.
## Layout
```
story-to-pack/
DESIGN.md this note
recovered/ the 2026-09-10 scripts, as recovered from the transcript; not re-run
probe/ the working probe for assumption 1
corpus/ Gutenberg source texts (rebuildable; see recovered/README.md)
split.py volumes -> stories.json
chunk.py stories -> chunks.json (~300-word scenes)
ollama.py the only module that talks to an inference host
embed.py texts -> vectors, checkpointed
summarise.py scenes -> one generic sentence each, checkpointed
strip_names.py summaries -> summaries with names replaced, from a corpus-built lexicon
measure.py clustering concentration report for any embedding file
sample_clusters.py seeded sample of tight-recurring clusters, for reading (criterion 3)
summaries-v1-pilot.json, summaries-v2-pilot-retry.json the two 40-scene pilots, kept as evidence
*.log run and measurement output
gpu-logs/ the inference host's power/link/kernel logs for the 2026-09-14 run
```
+80
View File
@@ -0,0 +1,80 @@
# story-to-pack
Research toward a tool that builds a The Ladder content pack from a corpus of stories.
**Independent of the game.** Nothing in `src/`, `content/` or `test/` imports anything here, and
nothing here is part of `npm test` or `npm run build`. It lives on the `story-to-pack` branch so it is
versioned alongside the pack format it targets, without touching `main`.
- **What was decided and why:** [`DESIGN.md`](DESIGN.md)
- **How situations are selected, and every test of it:** [`SELECTION.md`](SELECTION.md)
- **The 2026-09-10 scripts, recovered from a transcript:** [`recovered/`](recovered/README.md)
## Status
Selection is settled as **gate G2 followed by a structured human review** (see below). Every automated
alternative tried — three more geometric gates and two model-judged gates — was worse on fresh,
blind-labelled data. Nothing downstream of selection (paths and directions, numbers, pack output) is
built yet.
## Layout
```
probe/
corpus/ O. Henry's Four Million cycle, Project Gutenberg (public domain)
split.py, chunk.py volumes -> stories.json -> chunks.json (838 scenes)
ollama.py the only module that talks to an inference host (host from STP_OLLAMA)
summarise.py scene -> one sentence, via the model -> summaries.json
strip_names.py names removed deterministically -> summaries_clean.json
embed.py texts -> vectors -> embeddings.json, summary_embeddings.json
measure.py, signals.py, gate2.py, gate3.py, judge.py … the selection experiments
labels-*.json, sheet-*.txt, candidates-*.json, *-map.json blind labels and what they labelled
review.py G2 on a partition -> a review package for a human
review_format.py the review form: schema, checks, conversion
apply_review.py filled review.json -> situations.json
test_review.py tests for the review form
review/<run>/ review packages: REVIEW.md, review.json, candidates.json, situations.json
```
Not committed (see `.gitignore`): the inference host's power and kernel logs, and caches that the
scripts rebuild on first use (`sim.pkl`, `null*.pkl`, `coassoc.json`). The embeddings are committed
(about 16 MB) because recreating them needs the inference host.
## Running
Everything runs from `probe/` with Python 3 and no third-party packages.
Anything that calls a model reads the host from the environment and never from a file:
```sh
export STP_OLLAMA=http://<inference-host>:11434
```
## Reviewing situations
```sh
cd probe
python3 review.py # k = 60, seed 24 -> review/k60-s24/
```
That writes three files into the run directory:
- **`REVIEW.md`** — what the program found, and exactly what the reviewer is asked to decide for
each candidate, with every scene listed. Read this.
- **`review.json`** — the form. The only file the reviewer edits.
- **`candidates.json`** — what the program found, for the checker. Do not edit.
When the form is filled in:
```sh
python3 apply_review.py review/k60-s24
```
It reports every problem at once and writes nothing until the form is complete and consistent; then
it writes **`situations.json`**, the machine-readable input for the next stage: each situation's
wording, roles and stakes, the scenes that show it (with story and summary), and which candidates it
came from.
```sh
python3 -m unittest test_review # the review form's checks
```
+744
View File
@@ -0,0 +1,744 @@
# story-to-pack — selecting situations
> **Decision (2026-09-15): selection is gate G2 followed by a structured human review.** `probe/review.py`
> writes a review package (`REVIEW.md`, `review.json`, `candidates.json`); the reviewer fills in
> `review.json`; `probe/apply_review.py` checks it and writes `situations.json` for the next stage. See
> the README. The record below is how that decision was reached: four gate designs and two
> model-judged gates, each tested against blind labels.
The step after clustering: from the clusters of summarised scenes, choose the ones that are genuine
**recurring situations** — the raw material of a recurring event — and reject the rest. Companion to
`DESIGN.md`; this is the step its assumption-1 result called for.
**Status (2026-09-14): designed and pre-registered below, before any feature was computed or any
label was read against a feature.** Results are appended at the end, and nothing above the Results
heading is edited after the test runs, except to fix a typo.
---
## The problem, from the assumption-1 result
Summarise-then-embed broke the story-identity effect: clusters now draw from many stories. But of five
sampled tight-recurring clusters, one was a **vocabulary cluster** — fortune-tellers, adventurers, a
found tyre, a graft inquiry — held together by "seeks", "fortune", "mysterious", and mostly from three
stories. The concentration and tightness filters in `measure.py` let it through. A selector has to
reject clusters like that one and keep clusters like "a spouse schemes against or confronts a spouse
over infidelity".
## Constraints
- **No inference.** Selection uses only what is already on disk: the summary embeddings, the prose
embeddings, the summary text, and which story each scene came from. It is pure computation, like the
numeric search, so it can be re-run and tuned for free. (It also keeps the inference host free for
other work.)
- **Deterministic.** Seeded clustering; the same inputs give the same selection.
- **Pure Python**, like the rest of the probe.
## What a selected situation is
A set of scenes, from **at least 4 different stories**, with no story contributing more than 40%,
that a reader can name as **one social transaction**: who wants what from whom. It becomes one
recurring event; its member scenes become that event's description variants and option material.
Rejected: story-dominated clusters (already mechanical), **vocabulary clusters** (shared words, no
shared transaction), **register clusters** (shared tone or setting, e.g. "men walking through the
city"), and **near-duplicates** of an already-selected situation.
## Candidate signals
All computed per cluster, from existing vectors and text. Each carries a pre-registered prediction of
which way it moves for a genuine situation.
| # | Signal | Definition | Prediction for a situation |
| --- | --- | --- | --- |
| S1 | **Cross-story cohesion** | Mean summary-embedding cosine over member pairs from *different* stories | Higher |
| S2 | **Cross/within ratio** | S1 divided by the mean cosine over member pairs from the *same* story (1.0 if there are none) | Closer to 1 — a situation is as similar across stories as within one; a cluster held together by a few stories' scenes is not |
| S3 | **Effective stories** | Inverse Simpson index of the member story counts, divided by cluster size | Higher — members spread evenly rather than a few stories plus stragglers |
| S4 | **Prose agreement** | Mean *prose*-embedding cosine over cross-story member pairs, minus the corpus-wide mean cross-story prose cosine | Higher — a second, independent view: scenes of the same situation should read a little alike even in the original text |
| S5 | **Stability** | Mean pairwise co-association of members across 12 k-means runs (k from 50 to 100, several seeds): the share of runs in which two members land together | Higher |
| S6 | **Word dependence** | Share of members containing the cluster's single most over-represented content word (log-odds against the whole summary set, stopwords and "someone" excluded) | Higher for a **vocabulary** cluster — one word doing the work |
S6 is predicted to indicate the failure, the others to indicate success.
## Protocol
1. **Candidates.** Cluster the summary embeddings with k = 60. A candidate is a cluster with ≥ 5
members, ≥ 4 distinct stories and dominant share ≤ 40% (`measure.py`'s "recurring"; the relative
tightness filter is *not* applied — the selector replaces it).
2. **Two candidate sets from two partitions.** Development: seed 11. Test: seed 12.
3. **Blind labels.** Each set is dumped to a sheet showing, per cluster, only its member summaries in
shuffled order — no story titles, no scores, no sizes beyond the lines themselves. Each cluster is
labelled by reading:
- **2 — one situation:** one nameable social transaction that most members (roughly 70%+)
instantiate. The label records its name.
- **1 — broad:** a shared setting or theme, but the transaction varies across members.
- **0 — not a situation:** vocabulary, register, or nothing nameable.
The test sheet is labelled before any signal is computed for the test set.
4. **Choose the rule on development only.** Compute S1–S6 for the development set. Candidate rules
are single thresholds on one signal, or an AND of two. The chosen rule is the one with the highest
**precision** (share of accepted clusters labelled 2), subject to accepting at least half of the
development set's label-2 clusters; ties go to the simpler rule. Freeze it here, in writing, before
step 5.
*Detail fixed after the labels were written and before any signal was computed:* thresholds are
placed midway between adjacent observed development values, never on one. Ties beyond simplicity
break on more label-2 clusters accepted, then on precision for label ≥ 1. Two reference points
are reported but cannot be chosen: accepting every candidate, and `measure.py`'s tightness filter
(coherence at or above the partition's median sized cluster), called B0.
5. **Test once.** Apply the frozen rule to the test set. Report precision (label 2, and label ≥ 1),
recall of label-2 clusters, and the number accepted. No re-tuning after seeing test results; any
later change is a new rule and needs new data to be tested on.
6. **Near-duplicates.** Among accepted clusters, merge any pair whose centroids have cosine ≥ a
threshold chosen on development by reading the labels' names. Report how many merges happened on
the test set and whether each merged pair's names agree.
## Known limits of this test
- **The labels are one reader's judgement** — the model running the probe. They are written to a
file so the designer can spot-check or overrule them, and the verdict should be read with that in
mind.
- **Development and test come from the same corpus.** Two partitions of the same 838 scenes share
situations, so the test measures stability across clustering, not generalisation to a new corpus.
A genuinely held-out test needs a second corpus, which needs embedding, which needs the inference
host.
- **k is fixed at 60** for the test. The selector's behaviour at other k is not tested.
## Frozen rule (written before any test signal was computed)
Chosen on development (40 candidates, 5 labelled 2; must accept ≥ 3), by `probe/select_rule.py choose`:
> **Accept a candidate when S1 ≥ 0.6119 AND S6 ≤ 0.1603.**
> Cross-story cohesion at least 0.6119, and no single over-represented word in more than 16% of members.
| On development | Accepted | Precision (2) | Precision (≥ 1) | Recall (2) |
| --- | --- | --- | --- | --- |
| Accept every candidate | 40 | 0.12 | 0.62 | 1.00 |
| B0, tightness filter | 17 | 0.24 | 0.76 | 0.80 |
| S1 alone (best single) | 9 | 0.44 | 0.89 | 0.80 |
| **Frozen rule** | **5** | **0.60** | **1.00** | **0.60** |
Accepted on development: D04 (2), D09 (1), D13 (2), D16 (2), D33 (1). Rejected label-2: D15 (S1 0.603),
D30 (S6 0.20). Full leaderboard: `probe/choose-dev.log`; signals: `probe/signals-dev.json`.
Observations recorded now, so they cannot be shaped by the test:
- **This is very likely overfit.** Five positives, fine-grained thresholds, and an AND of two signals
is exactly the setting in which a rule memorises its development set. The test is what decides.
- **S1 does most of the work.** It is the best single signal by a wide margin, and it alone rejects
the vocabulary cluster that motivated this step (D18, S1 0.605).
- **S6 did not behave as predicted.** Its most over-represented word is usually a *story's* word
("juggler", "furs", "eviction"), not generic vocabulary, and D18's is low (0.11). It catches D39
("young", 1.00) — a vocabulary cluster of a different kind. Its contribution to the frozen rule is
a single cut, and may not carry over.
- **S2, S3 and S4 were weak on development**, and S5 middling. None of the predicted directions was
strongly wrong, but only S1 separated well.
**Near-duplicates (step 6): centroid cosine cannot do it, so no automatic merge is applied.** Among
the five clusters the rule accepts on development, no two share a situation, so there was nothing
there to calibrate on. Across all 26 development candidates labelled ≥ 1, the one clear duplicate —
D13 and D30, both "a run-in with the police" — has centroid cosine **0.9026**, while five pairs of
plainly different situations score higher, up to **0.9326** ("money and marriage" against "schemes,
cons and theft"). D05/D23 (artists) sit at 0.9005. Any threshold that merges the duplicate merges
different situations first. Summary embeddings place situations about money, romance and conflict
in one dense region, so closeness between centroids is not identity of situation.
Decision, fixed before the test: the test reports, **by label name**, whether any two accepted
clusters are the same situation, as a measurement of how often duplicates survive selection. A
merge method is an open problem; member overlap across partitions (co-association between two
clusters' members) is the candidate to try next, and is untested.
## Results
**Test run once, 2026-09-14,** on the seed-12 partition (41 candidates, 5 labelled 2), frozen rule
unchanged. Logs: `probe/signals-test.json`, `probe/apply-test.log`.
| On test | Accepted | Precision (2) | Precision (≥ 1) | Recall (2) |
| --- | --- | --- | --- | --- |
| Accept every candidate | 41 | 0.12 | 0.51 | 1.00 |
| B0, tightness filter | 18 | 0.17 | 0.44 | 0.60 |
| **Frozen rule** | **5** | **0.40** | **1.00** | **0.40** |
Accepted: T35 (2) coercion over money; T39 (2) spouse against spouse over infidelity; T05 (1) schemes
and cons over money; T07 (1) courtship; T25 (1) trying to impress or win someone's favour.
Rejected label-2: T16 newcomer seeks acceptance (S1 0.598), T17 proposal or engagement (S1 0.596),
T30 run-in with the police (S1 0.604, S6 0.23).
### Verdict
**The selector is precise and narrow.** Across both sets it accepted 10 clusters, and **all 10 are
situations or broad situational themes; none is a vocabulary, register or grab-bag cluster.**
Accepting everything gives about half that. The tightness filter used in the assumption-1 test is
*worse* than accepting everything on the test set (0.44 against 0.51) — it keeps vocabulary clusters,
which are tight.
**It does not find most of the situations.** Recall of label-2 clusters fell from 0.60 to 0.40, and
precision for label 2 from 0.60 to 0.40 — the expected overfitting. The rejected label-2 clusters sit
just under the S1 cut (0.596–0.604), so the threshold is doing real work at a place where situations
and non-situations overlap. **Five accepted clusters out of 41 is far short of the ~15 situations
per stage a pack needs**, so as it stands selection would make the sufficiency report fail on this
corpus.
**S6 earned its place on the test set, in the way it failed to on development.** Two test clusters are
held together by a single word — T10 "caliph" (S6 0.70) and T18 "young" (1.00) — and both have high
cross-story cohesion (S1 0.628, 0.626). S1 alone would accept them; S6 rejects them. (Observation made
after the test, not a re-tuning: S1 ≥ 0.6119 alone would accept 10 test clusters, 2 labelled 2 and 6 labelled ≥ 1.)
Its original motivation, D18, was caught by S1 instead. Both failure modes exist, and each signal
catches one.
**Duplicates among accepted clusters:** no two carry the same label name. T07 (courtship) and T25
(trying to impress or win someone's favour) overlap in substance; a reader could reasonably call them
one situation. Automatic merging remains unsolved (see step 6).
### What this means for the design
1. **Two-signal selection is a sound first gate, not a complete step.** It should run as a *filter
that is allowed to reject* — its precision is what matters for pack quality — followed by a
second stage that recovers recall.
2. **Recall is the next problem, and clustering is the likely cause, not selection.** The rejected
situations (police run-ins, proposals, social climbing) are recognisable but diluted by
off-situation members at k = 60. Candidates to test, all without inference: re-cluster the members
of rejected clusters at finer k and re-apply the gate; select from the union of several partitions,
using co-association to keep only members that consistently travel together; or grow an accepted
cluster's core by adding nearest cross-story members while S1 stays above the cut.
3. **Merging duplicates needs member overlap, not centroid distance.**
4. **These labels are one reader's.** Every number above rests on them. They are in
`probe/labels-dev.json` and `probe/labels-test.json`, with the sheets they were read from, and are
worth a designer's spot-check — especially the 1-versus-0 boundary, which is the least certain.
5. **The test is within one corpus.** Generalisation to a different corpus is untested and needs
embeddings, which needs the inference host.
---
## Recovering recall (pre-registered 2026-09-14, before any recovery method was run)
The gate is precise and keeps too few. Three ways to find more situations, compared on **fresh data**,
because the test set above is spent. Still no inference.
### Fixed before running
- **The gate does not change.** `S1 ≥ 0.6119 AND S6 ≤ 0.1603`, plus the candidate conditions (≥ 5
members, ≥ 4 stories, dominant ≤ 40%). "Passes the gate" below means all of these.
- **A property of the gate, noted in advance:** S6 counts a word only if at least two members share
it, so a cluster of fewer than 13 members fails whenever any content word repeats (2/12 = 0.167). In
effect the gate requires ~13 members. The methods are built to produce clusters of that size;
anything smaller is expected to fail, and that is the gate's behaviour, not a method's.
- **Fresh partition:** k = 60, **seed 13** — neither development (11) nor test (12).
- **Baseline (B):** the gate applied to seed 13's candidates, as before.
- **M1 — re-cluster the rejected.** Every scene not in a B-accepted cluster is pooled and re-clustered
with k-means, k = round(pool size / 20), seed 13. Result: B's accepted clusters plus pool clusters
that pass the gate.
- **M2 — consensus clustering.** Each scene is represented by its co-association row over the 12 cached
runs (k 50–100, seeds 21 and 22 — no overlap with 11, 12 or 13): how often it landed with every
other scene. Those rows are clustered with k-means, k = 60, seed 13. Result: clusters that pass the gate.
- **M3 — prune, then grow.** For each seed-13 candidate: if it fails the gate, repeatedly remove the
member with the lowest mean similarity to members from *other* stories, until it passes or falls to
13 members (then it is dropped). Then grow every passing cluster: add the non-member scene nearest
its centroid while the result still passes; stop at the first addition that would fail, or at 30
members. Scenes may end up in more than one M3 cluster; the overlap is reported.
### Evaluation
- Every cluster accepted by any method is pooled (identical member sets once), given a shuffled id, and
dumped to a blind sheet showing only member summaries. Which method produced a cluster is written
to a separate map file that is not read until labelling is finished.
- Labels use the same 2 / 1 / 0 scale. Names are reused verbatim from the development and test label
files wherever the situation is the same, so duplicate situations can be counted by name.
- Per method: clusters accepted; precision for label ≥ 1 and for label 2; **distinct situations**
(distinct names among label ≥ 1); scene coverage; overlap between accepted clusters.
- **Success, per method:** at least **twice** B's accepted clusters, **and** precision (≥ 1) of at least
**0.80**, **and** at least twice B's distinct situations. For scale: a two-stage pack wants ~30.
### Known limits
The reader has now read every summary several times; labels are blind to method and signals, not to
content. The methods and the gate are evaluated on one corpus.
### Results (2026-09-14)
Seed 13 gave 42 candidates. 21 distinct accepted clusters were labelled blind (`probe/labels-recover.json`,
3 labelled 2, 13 labelled 1, 5 labelled 0), then scored by `probe/evaluate_recover.py`:
| Method | Accepted | Precision (≥ 1) | Precision (2) | Distinct situations | Scene coverage | Success |
| --- | --- | --- | --- | --- | --- | --- |
| B, gate on candidates | 4 | 1.00 | 0.00 | 4 | 13% | — |
| M1, re-cluster the rejected | 4 | 1.00 | 0.00 | 4 | 13% | **fail** — 0 new |
| M2, consensus clustering | 3 | 1.00 | **1.00** | 3 | 5% | **fail** — too few |
| M3, prune then grow | 16 | 0.69 | 0.00 | 10 | 45% | **fail** — precision |
**No method meets the pre-registered bar.**
- **M1 adds nothing.** Re-clustering the 729 scenes outside B's clusters at k = 36 produced no cluster
that passes the gate. The gate's selectivity does not come from dilution by one bad partition.
- **M2 is the only method that produced sharp situations.** All three of its clusters are labelled 2
— a wealthy suitor weighed against love, a spouse against a spouse over infidelity, coercion by
threat — at 14–17 members, against B's 13–38. Consensus over many partitions isolates the scenes
that genuinely travel together. It produces too few clusters to be the selection step on its own.
- **M3 finds the most, and the gate cannot stop it diluting.** Pruning recovered 12 rejected
candidates and M3 reached 10 distinct situations (B: 4), but 5 of its 16 clusters are not
situations. **Growth was stopped by the 30-member cap in 10 of 16 clusters, not by the gate.**
That exposes the gate's second size effect: S6 is a share, so it gets *easier* to satisfy as a
cluster grows, and S1 moves slowly. The gate calibrated on k = 60 clusters does not constrain a
cluster that is being built up one scene at a time.
- **Duplicates survive.** Across methods, "a spouse against a spouse" appears three times (R006, R015)
and courtship twice within M3 (R008, R010); 68 scenes sit in more than one M3 cluster.
- **The seed-13 baseline itself accepted no label-2 cluster** (0 of 4), where development and test
each had 2–3. The baseline's precision for label 2 is unstable across partitions.
### What this means
The gate, as frozen, is **size-dependent in both directions**: it structurally rejects clusters under
~13 members and barely constrains clusters above ~25. Any method that changes cluster size — pruning,
growing, finer re-clustering — changes what the gate measures. Every recovery method was, in effect,
testing the gate at sizes it was not calibrated for.
Observation only, not pre-registered and not a result: B and M2 together would give 7 clusters,
6 distinct situations, all labelled ≥ 1, and 3 labelled 2.
Directions this points to, none tested:
1. **Make the gate size-invariant before anything else.** Replace S6's share with a count or a
significance test against the corpus, and judge S1 relative to what a random cluster of the same
size scores. Then re-validate — which needs fresh labels on fresh partitions.
2. **Use consensus (M2) to form clusters, not k-means.** It was the only source of sharp situations.
Running more co-association partitions (more seeds, more k) and extracting cores at several
agreement levels may raise its yield without losing precision.
3. **Grow only with a size-invariant stopping rule.** M3's recall is real; its stopping rule is not.
---
## A size-invariant gate, G2 (pre-registered 2026-09-14, before any G2 signal was computed)
### Why each old signal depended on size
- **S6** is a share with a floor of 2 members: 2/size. Under ~13 members any repeated word fails the
cut; above ~25 almost nothing does. A share is not evidence unless the count is improbable.
- **S1**'s *expectation* does not depend on size — it is a mean over pairs — but its *noise* does:
small clusters reach a high S1 by chance, which is part of why k-means' small clusters look tight.
- **Nothing looked at individual members.** Adding one off-situation scene to 30 moves S1 by
roughly a thirtieth of the difference, so growth was never stopped.
### G2 signals
| Signal | Definition | Why it is size-invariant |
| --- | --- | --- |
| **S1** | Unchanged: mean summary cosine over cross-story member pairs | Unbiased at any size |
| **Z1** | (S1 − μₘ) / σₘ, where μₘ and σₘ come from random member sets of the same size m (≥ 4 stories, dominant ≤ 40%): 300 samples for m ≤ 40, 120 above, sizes 5–150, seeded | Requires more evidence where chance does more |
| **MMIN** | The lowest, over members, of a member's mean cosine to members of *other* stories | A per-member quantity; one diluting member fails it at any size |
| **W** | Among words shared by ≥ 2 members, those whose count is significant by a hypergeometric upper-tail test at Bonferroni 0.01 over the corpus vocabulary; W is the largest share among them (0 if none) | Counts only improbable sharing, then measures how dominant it is |
Word extraction, stopwords and the corpus are identical to `signals.py`. Pairwise similarities are
precomputed once. Candidate conditions (≥ 5 members, ≥ 4 stories, dominant ≤ 40%) still apply.
### Choosing thresholds
- **Tuning set:** every labelled cluster so far — development (40), test (41) and the recovery pool
(21): 102 clusters, 63 labelled ≥ 1, sizes 5–39. All have been seen; none is used for validation.
- **Rule form:** S1 ≥ a AND Z1 ≥ b AND MMIN ≥ c AND W < d, where each term may be switched off. Grid:
a and c at the deciles of the tuning set's values or off; b ∈ {off, 1, 2, 3, 4, 5}; d ∈ {off, 0.25,
0.30, 0.35, 0.40, 0.50, 0.60}.
- **Objective:** the most tuning clusters labelled ≥ 1 accepted, subject to precision (≥ 1) of at least
**0.85**; ties on more label-2 accepted, then fewer active terms. The objective changes from the
first gate (which maximised label-2 precision) because the failure now is recall, and label 1 —
a situational theme — is usable material for a pack.
- The tuning report also gives, per size band (≤ 12, 13–25, ≥ 26), how many clusters the old and new
gates accept and at what precision.
### Validation on fresh data (nothing below has been computed)
- **V1, small clusters:** k = 100, seed 15; 30 candidates sampled at random (seed 15).
- **V2, large clusters:** k = 40, seed 14; 30 candidates sampled at random (seed 14).
- **V3, growth:** k = 60, seed 16; every candidate G2 accepts is grown by adding the non-member nearest
its centroid while the result still passes G2, up to 45 members. The stop reason — gate or cap — is
recorded.
- All V1 and V2 samples and all V3 grown clusters are pooled, deduplicated, shuffled and labelled blind,
with the set and method in a separate map file.
- **Success, all three required:**
1. G2's precision (≥ 1) is at least **0.80 on V1 and on V2 separately**, and G2 accepts at least 3
clusters in each.
2. In V1, G2 accepts **more** small clusters than the old gate.
3. In V3, **most growths are stopped by the gate, not the cap**, and grown clusters have precision
(≥ 1) of at least 0.80.
The old gate is scored on V1 and V2 alongside, for comparison.
### Frozen G2 (written after tuning, before any validation cluster was built)
`probe/tune_gate2.py`, log `probe/tune-gate2.log`. (Correction: the tuning set has 62 clusters
labelled ≥ 1, not 63.)
> **Accept a candidate when S1 ≥ 0.6037 AND Z1 ≥ 5 AND W < 0.60.** MMIN is off.
| Tuning set, 102 clusters | Accepted | Label ≥ 1 | Precision (≥ 1) | Label 2 |
| --- | --- | --- | --- | --- |
| Accept all | 102 | 62 | 0.61 | 13 |
| Old gate | 31 | 26 | 0.84 | 8 |
| **G2** | **40** | **34** | **0.85** | **9** |
| Size band | Clusters (≥ 1) | Old gate: accepted / P1+ | G2: accepted / P1+ |
| --- | --- | --- | --- |
| ≤ 12 | 20 (7) | 0 / — | 1 / 1.00 |
| 13–25 | 52 (34) | 13 / 0.92 | 18 / 0.89 |
| ≥ 26 | 30 (21) | 18 / 0.78 | 21 / 0.81 |
**Observations and predictions, recorded before validation:**
- **G2 is not size-invariant at the small end, and the objective chose that.** Z1 ≥ 5 is a fixed bar
on a statistic whose value, for a fixed true cohesion, *grows* with size (σₘ shrinks as m grows).
It replaces S6's structural rejection of small clusters with a milder one: 1 small cluster accepted
instead of 0. **Prediction: criterion 2 passes narrowly or fails, and V1 yields fewer than 3
accepted clusters, failing criterion 1.**
- **MMIN, the signal designed to stop dilution, was not selected**, and W's cut (0.60) is loose enough
to act only on near-total single-word clusters. Growing a cluster raises Z1 and barely moves S1.
**Prediction: most V3 growths run to the cap, failing criterion 3.**
- The gain over the old gate is real but modest, and it is in the mid and large bands: 8 more clusters
labelled ≥ 1 accepted at unchanged precision.
- The thresholds are not changed in light of these predictions. The validation tests the rule the
pre-registered procedure produced.
### Validation results (2026-09-14)
73 fresh clusters labelled blind (`probe/labels-validate.json`: 6 labelled 2, 33 labelled 1, 34
labelled 0), scored by `probe/validate_gate2.py score` (log `probe/validate-score.log`).
| Set | Sampled (≥ 1) | Old gate: accepted / ≥ 1 / P1+ | G2: accepted / ≥ 1 / P1+ |
| --- | --- | --- | --- |
| V1, k = 100 | 30 (13) | 3 / 2 / 0.67 | **10 / 8 / 0.80** (2 labelled 2) |
| V2, k = 40 | 30 (16) | 1 / 1 / 1.00 | 4 / 3 / 0.75 |
| V3, grown | 13 | — | 13 grown: **11 stopped by the cap**, 2 by the gate; 10 ≥ 1, P1+ 0.77 |
| Criterion | Result |
| --- | --- |
| 1. P1+ ≥ 0.80 and ≥ 3 accepted, on V1 and V2 | **fail** — V1 passes (0.80, 10), V2 does not (0.75, 4) |
| 2. G2 accepts more V1 clusters than the old gate | **pass** — 10 against 3 |
| 3. V3 mostly stopped by the gate, P1+ ≥ 0.80 | **fail** — 2 of 13, 0.77 |
| **Overall** | **fail** |
By size, across V1 and V2 together:
| Size | Old gate: accepted (≥ 1) | G2: accepted (≥ 1) |
| --- | --- | --- |
| ≤ 9 | 0 | **0** — including two clusters labelled 2 (5 and 6 members) |
| 10–12 | 0 | 3 (3) |
| 13–25 | 3 (2) | 7 (5) |
| ≥ 26 | 1 (1) | 4 (3) |
| All | 4 (3), P1+ 0.75 | 14 (11), P1+ 0.79 |
### Verdict on G2
**G2 is a real improvement on the old gate, and it is not size-invariant.** It accepts three to four
times as many clusters at slightly better precision, and it opens the 10–25 member range the old gate
all but closed. Both pre-registered predictions of failure held:
- **The small end is still closed below 10 members.** Z1 ≥ 5 is unreachable for a cluster of 5–9
however cohesive it is. The two sharpest small clusters on the sheet — a fare dispute (5 members,
label 2) and a spouse against a spouse (6 members, label 2) — were both rejected.
- **Growth is still unconstrained.** Growing a cluster raises Z1 and barely moves S1, so both gates
accept a 45-member cluster as readily as a 15-member one. The one per-member signal built to stop
this, MMIN, was not selected by the tuning objective.
- **Large clusters are still mostly rejected** (4 of 30 in V2), including clear themes such as the
saloon, dining rooms and illness.
**What was learned about size-invariance itself:** a fixed threshold on a z-score is not size-invariant;
it reverses the old bias rather than removing it. A size-invariant cohesion test needs a threshold
that scales with the null — for example a fixed *percentile* of the same-size random distribution
combined with an effect-size floor on S1 — and a stopping rule for growth has to be a per-member
test that the tuning cannot switch off. Both are untested proposals, and testing them needs another
fresh partition and another round of blind labels, because every cluster labelled so far has now
informed a design decision.
---
## G3: a percentile of the same-size null, and a mandatory member floor (pre-registered 2026-09-14, before any G3 signal was computed)
### Changes from G2
- **Z1 is replaced by PCT**: the fraction of same-size random member sets (≥ 4 stories, dominant ≤ 40%)
whose S1 is below the cluster's. 1,000 samples per size for 5–60 members, 200 for 61–150, seeded.
A percentile threshold asks "is this cluster as unusual as the top x% of random sets *of its own
size*", which a z-score with a fixed bar does not.
- **S1 floor is mandatory.** At large sizes the null is narrow and PCT saturates at 1.0 for any
cluster slightly above average, so an effect-size floor has to carry the weight there.
- **MMIN is mandatory**: every member's mean cosine to members of other stories must reach the floor.
It is the growth stop; tuning chooses its value but cannot switch it off.
- **W** is unchanged from G2 and remains optional.
### Tuning
- **Tuning set: all 175 labelled clusters** — development 40, test 41, recovery 21, G2 validation 73.
- **Rule form:** S1 ≥ a AND PCT ≥ p AND MMIN ≥ c AND W < d. a and c at the tuning set's deciles (no "off");
p ∈ {0.90, 0.95, 0.975, 0.99, 0.999}; d ∈ {off, 0.30, 0.40, 0.50, 0.60}.
- **Objective unchanged from G2:** most clusters labelled ≥ 1 accepted, subject to precision (≥ 1) of at
least 0.85; ties on more label-2 accepted, then fewer active terms.
**Risk named in advance:** MMIN is a minimum over per-member means. Small clusters have noisier
member means but fewer of them; large clusters have steadier means but more chances to contain one
low member. Its net size effect is not predictable, and it could re-introduce a size bias of its own.
### Validation on fresh partitions (seeds never used before)
- **V0, very small:** k = 150, seed 20; 25 candidates sampled (seed 20).
- **V1, small:** k = 100, seed 17; 20 sampled (seed 17).
- **V2, large:** k = 40, seed 18; 20 sampled (seed 18).
- **V3, growth:** k = 60, seed 19; every G3-accepted candidate grown toward its nearest scene while it
passes G3, cap 45, stop reason recorded.
- Pooled, deduplicated, shuffled and labelled blind as before. The old gate and G2 are scored on the
same clusters.
**Success, all four required:**
1. G3 precision (≥ 1) ≥ **0.80** and ≥ 3 accepted, on V1 and on V2 separately.
2. **Small clusters:** among V0 and V1 clusters of ≤ 9 members, G3 accepts **at least 2**, with precision
(≥ 1) of at least **0.67**, and more than G2 accepts.
3. **Growth:** most V3 growths stopped by the gate, and grown clusters have precision (≥ 1) ≥ 0.80.
4. G3 accepts at least as many clusters labelled ≥ 1 across V0–V2 as G2, at precision no lower than G2's.
### Frozen G3 (written after tuning, before any validation cluster was built)
`probe/tune_gate3.py`, log `probe/tune-gate3.log`.
> **Accept a candidate when S1 ≥ 0.6175 AND PCT ≥ 0.90 AND MMIN ≥ 0.5296 AND W < 0.60.**
| Tuning set, 175 clusters (101 ≥ 1, 19 label 2) | Accepted | Label ≥ 1 | Precision (≥ 1) | Label 2 |
| --- | --- | --- | --- | --- |
| Old gate | 47 | 38 | 0.81 | 9 |
| G2 | 67 | 55 | 0.82 | 12 |
| **G3** | **47** | **40** | **0.85** | **13** |
| Size band | Clusters (≥ 1) | Old: accepted/≥ 1 | G2 | G3 |
| --- | --- | --- | --- | --- |
| ≤ 9 | 26 (5) | 0/0 | 0/0 | **4/3** |
| 10–12 | 21 (11) | 0/0 | 4/4 | 4/4 |
| 13–25 | 75 (47) | 17/15 | 26/22 | 17/17 |
| ≥ 26 | 53 (38) | 30/23 | 37/29 | 22/16 |
**Observations and predictions, recorded before validation:**
- **G3 is the first gate to accept any cluster under 10 members** (4 on tuning, 3 of them ≥ 1).
**Prediction: criterion 2 passes.**
- **The percentile threshold settled at its loosest value, 0.90, and the S1 floor rose** from G2's 0.6037
to 0.6175. The floor, not the percentile, is doing most of the work at mid and large sizes, and G3
accepts 15 fewer large clusters than G2 on tuning. **Prediction: criterion 4 fails** — G3 finds fewer
clusters labelled ≥ 1 than G2 (40 against 55 on tuning), though at higher precision. Criterion 1 is
at risk on V2 for the same reason.
- **MMIN at 0.53 is the growth stop.** Whether a nearest-to-centroid scene falls below it is not
predictable from tuning, which contains no grown-under-G3 clusters. No prediction for criterion 3.
- The trade is visible already: G3 exchanges recall at the large end for precision everywhere and for
admission at the small end. Whether that is the right trade for a pack is a design question the
validation cannot answer.
### Validation results (2026-09-14)
75 fresh clusters labelled blind (`probe/labels-validate3.json`: 4 labelled 2, 24 labelled 1, 47
labelled 0), scored by `probe/validate_gate3.py score` (log `probe/validate3-score.log`).
| Set | Sampled (≥ 1) | Old: acc / ≥ 1 / P1+ | G2: acc / ≥ 1 / P1+ | G3: acc / ≥ 1 / P1+ |
| --- | --- | --- | --- | --- |
| V0, k = 150 | 25 (5) | 2 / 1 / 0.50 | 8 / 4 / 0.50 | 11 / 4 / 0.36 |
| V1, k = 100 | 20 (5) | 1 / 0 / 0.00 | 1 / 1 / 1.00 | 4 / 2 / 0.50 |
| V2, k = 40 | 20 (12) | 0 / 0 / — | 4 / 4 / 1.00 | 2 / 2 / 1.00 |
| ≤ 9 members, V0 + V1 | 27 (4) | 1 / 0 / 0.00 | 3 / 1 / 0.33 | 11 / 3 / 0.27 |
| V0–V2 pooled | 65 (22) | 3 / 1 / 0.33 | **13 / 9 / 0.69** | 17 / 8 / 0.47 |
| V3, grown under G3 | 10 | — | — | 7 stopped by the cap, 3 by the gate; P1+ 0.60 |
**All four criteria fail**, and G3 is worse than G2 on fresh data: more clusters accepted, fewer of
them situations. G3's gain on the tuning set (P1+ 0.85, 13 label-2) did not survive a new partition.
### Why G3 failed — measured, not inferred
- **PCT carries no information.** Across all 175 tuning clusters, 173 reach PCT ≥ 0.90 and 141 reach
1.0 — including 72 of the 74 clusters labelled 0. **The random-set null is the wrong null.** k-means
groups each scene with its nearest neighbours, so every cluster it produces is far tighter than a
random set of scenes of the same size, whether or not it is a situation. A cohesion test has to ask
whether a cluster is tighter than *other clusters of its size*, not than random scenes.
- **MMIN barely separates labels and favours small clusters.** Median MMIN is 0.536 for label 0,
0.543 for label 1 and 0.564 for label 2; by size it is 0.547 for ≤ 9 members, 0.537 for 10–25 and
0.552 for ≥ 26. A minimum over few, noisy per-member means is not reliably lower for small clusters,
so the floor admitted 11 small clusters of which 8 are not situations. This is the risk recorded
before tuning.
- **Growth is still not stopped by the gate** (7 of 10 to the cap). A nearest-to-centroid scene
typically clears a member floor calibrated on whole clusters.
### Where this leaves selection
Across three gates and five blind-labelled evaluations, **G2 remains the best**: pooled precision
(≥ 1) of 0.79 on its own validation and 0.69 here, with the fewest non-situations admitted.
None of the three is size-invariant, and none stops growth.
Two conclusions look robust enough to build on:
1. **Cohesion alone does not identify a situation.** Clusters labelled 0, 1 and 2 overlap heavily on
every cohesion statistic tried (S1, Z1, PCT, MMIN). What separates the best-labelled clusters is
visible to a reader — one transaction — and is not a geometric property of summary embeddings at
the resolution tried.
2. **The labelling budget is the binding constraint.** Each gate needs fresh partitions and 70–80 new
blind labels to test honestly, and every labelled cluster so far has informed a design. Continuing
to iterate gate designs on this corpus without a different kind of evidence is unlikely to converge.
Candidate directions, none tested: a null built from **k-means clusters of the same size on
shuffled-story data** rather than random scenes; a selection step that uses the **inference model to
name each cluster's transaction** and checks agreement across members (needs the GPU); or accepting
G2 as the gate and moving the problem downstream to event construction, where a human pass over
~40 candidate clusters is cheap compared with the labelling this probe has already required.
---
## G4: the model reads the cluster (pre-registered 2026-09-14, before any model call)
The finding above is that what makes a cluster a situation is visible to a reader and not to the
geometry. So let a reader decide — the inference model — and measure it against the blind labels.
### Method
- For each cluster, up to **15 member summaries** (a seeded sample when larger), shuffled and numbered,
go to the model in one call with the prompt below. It returns JSON: the single social transaction
most of them clearly show, or NONE, and the numbers of the summaries that clearly show it.
- **FIT** = (number of valid summary numbers listed) / (number shown); 0 when the answer is NONE or
the reply cannot be parsed. Parse failures are counted and reported.
- **Gate: accept when FIT ≥ θ**, plus the usual candidate conditions (≥ 5 members, ≥ 4 stories,
dominant ≤ 40%), which every labelled cluster already meets.
- Deterministic: temperature 0, 2,048-token context, `format: json`. One request at a time, as before.
- **The prompt contains no example of a situation** — the 3B model copied the examples it was given
in the summarisation pilot.
Prompt (system), fixed:
> You read short summaries of scenes from different stories and decide whether they share one kind
> of social situation.
>
> A social situation is a specific transaction between people: who wants what from whom, and what
> is at stake. Describe it in your own words.
>
> Rules:
> - Find the single situation that the largest number of summaries clearly show.
> - It is normal for many summaries not to fit. Include a summary only if it clearly shows that
> situation.
> - A shared place, mood, profession or word is not a situation.
> - If no situation is clearly shown by at least three summaries, the situation is NONE.
>
> Reply with JSON only: {"situation": "<at most 10 words, or NONE>", "fits": [<numbers of the
> summaries that clearly show it>]}
The user message is the numbered list. For `qwen3:14b` it ends with `/no_think`, and any think block
is stripped before parsing.
### Models
- **Primary: `qwen2.5:3b-instruct`** — the design requires a small local model; the verdict rests on it.
- **Secondary: `qwen3:14b`** — reported, to show whether capability is what limits the result.
### Data — no new labels
The model is never fitted to labels; the only fitted quantity is θ.
- **θ is chosen on development (40 clusters)** only, with the objective used for G2 and G3: most
clusters labelled ≥ 1 accepted, subject to precision (≥ 1) ≥ 0.85; ties on more label-2 accepted,
then the higher θ. Grid: θ ∈ {0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}.
- **Primary evaluation: the G2 and G3 validation sets, 148 clusters**, which tuned neither G2 nor G4,
so G2 can be compared fairly on them. **Secondary:** test and recovery, 62 clusters.
- Identical member sets appearing in more than one file are judged once.
- **Pilot, allowed once:** the first 5 development clusters, to check the JSON parses. If more than 1
of 5 fails to parse, one prompt revision is allowed and recorded here before any other call.
### Success, on the 148-cluster primary set, with the 3B model
1. Precision (≥ 1) at least **0.80**.
2. **More** clusters labelled ≥ 1 accepted than G2 accepts on the same set.
3. Among accepted clusters of ≤ 9 members, precision (≥ 1) at least 0.67, if there are at least 3.
Also reported: G4 AND G2; FIT distribution by label; the situations named for accepted clusters
against the label names; and the 14B results against the same bar.
**Pilot (21:23):** 5 of 5 replies parsed with the 3B model, so the prompt is unchanged. About 1.6 s
per cluster. Noted without drawing a conclusion from five: the situations named are often generic
("Confrontation and hidden motives" for D04, a label-2 spouse-against-spouse cluster, FIT 0.47), and
a label-1 argument cluster scored FIT 0.87.
### Results, `qwen2.5:3b-instruct` (21:24–21:29, 245 distinct clusters in 286 s, 1 parse failure)
Log `probe/evaluate-judge-3b.log`. θ chosen on development: **0.6** (9 accepted, P1+ 0.89).
| Primary set, 148 clusters (67 ≥ 1) | Accepted | ≥ 1 | Label 2 | P1+ | Recall |
| --- | --- | --- | --- | --- | --- |
| Accept all | 148 | 67 | 10 | 0.45 | 1.00 |
| **G2** | **49** | **36** | 5 | **0.73** | **0.54** |
| G4, FIT ≥ 0.6 | 50 | 24 | 4 | 0.48 | 0.36 |
| G4 AND G2 | 18 | 11 | 1 | 0.61 | 0.16 |
On the secondary set (62) G4 reaches P1+ 0.71 against G2's 0.82. **All three criteria fail**
(P1+ 0.48; 24 ≥ 1 against G2's 36; 13 accepted small clusters at P1+ 0.23).
**FIT does not separate the labels:** mean 0.39 for label 0, 0.49 for label 1 — and **0.42 for label
2**, lower than for label 1. Precision at the primary set (0.48) is barely above accepting everything
(0.45).
**Why, visible in the replies:** the 3B model names situations at a level of abstraction where almost
anything fits — "confrontation", "power dynamics in social hierarchies", "tension between parties",
"coercion and manipulation" — and then lists most summaries as fitting it. A 5-member cluster labelled
0 scored FIT 1.00 as "power struggle/conflict". When it is specific it is often right ("marital
conflict" for a spouse-against-spouse cluster, "con or scam", "argue over payment"), but specificity
is not what FIT rewards. The rule against shared place, mood and profession was followed; a rule
against *abstraction* was never written, and the model supplies abstraction freely.
### 14B pilot and the one allowed revision
The `qwen3:14b` pilot failed to parse **5 of 5**: every reply's content was empty. The model spent its
whole 200-token budget in a separate thinking channel (Ollama returns it outside `content`), and the
`/no_think` suffix did not stop it. **Revision, the one allowed by the pilot rule, affecting only the
14B run:** requests set Ollama's `think: false` and allow 300 output tokens. The prompt text,
sampling, θ procedure and success criteria are unchanged. The five empty results were deleted before
re-running the pilot.
Re-run pilot: **5 of 5 parsed**, about 2.4 s per cluster. The situations named are more specific than
the 3B model's ("Wealthy person pressures someone into marriage", "Struggling artist facing societal or
personal challenges"), though an abstract one still scored FIT 0.80 ("conflict between individuals with
differing perspectives").
### Results, `qwen3:14b` (21:31–21:45, 245 clusters in 832 s, 0 parse failures)
Log `probe/evaluate-judge-14b.log`. θ chosen on development: **0.6** (8 accepted, P1+ 0.88).
| Primary set, 148 clusters (67 ≥ 1) | Accepted | ≥ 1 | Label 2 | P1+ | Recall |
| --- | --- | --- | --- | --- | --- |
| Accept all | 148 | 67 | 10 | 0.45 | 1.00 |
| **G2** | **49** | **36** | 5 | **0.73** | **0.54** |
| G4 (14B), FIT ≥ 0.6 | 42 | 22 | 4 | 0.52 | 0.33 |
| G4 (14B) AND G2 | 10 | 10 | 1 | 1.00 | 0.15 |
By size, G4 (14B) on the primary set: ≤ 9 members 17 accepted, P1+ 0.29; 10–25, 14 accepted, P1+ 0.50;
≥ 26, 11 accepted, **P1+ 0.91**. Secondary set (62): G4 P1+ 0.60 against G2's 0.82.
**All three criteria fail with the 14B model as well** (P1+ 0.52; 22 ≥ 1 against G2's 36; 17 small
clusters accepted at P1+ 0.29).
FIT now rises with the label — mean 0.40, 0.47, 0.52 for labels 0, 1, 2 — where the 3B model's did
not, so capability helps. But the separation is small next to the spread, and the 14B model still
names abstractions that fit almost anything ("Someone wants something from someone else", "Power
dynamics between individuals", "Someone holds power over someone else"), most often for small
clusters.
GPU host during both runs: no faults logged; peak 284.9 W (1 s), mean 163 W under load, 65 °C, PCIe
Gen 3 x4 throughout. Logs in `probe/gpu-logs/*2122*`.
### Verdict on G4
**Neither model's judgement is a better gate than G2**, and the pre-registered verdict (on the 3B
model) is a fail. The failure is specific and repeatable: asked for "the single situation most
summaries share", a model answers at whatever level of abstraction makes the most summaries fit, and
FIT rewards exactly that. Small clusters make it worse, because with 5–9 summaries an abstraction that
covers four or five of them is always available.
Two observations, recorded as observations because neither was a pre-registered criterion:
- **G4 (14B) AND G2 accepted 10 clusters on the primary set, and all 10 are labelled ≥ 1.** The two
gates fail in different ways — G2 admits cohesive clusters that are not situations, the model admits
abstract "situations" that are not cohesive — and their intersection is precise. It is also
narrow: recall 0.15.
- **For clusters of 26 or more, the 14B model's precision is 0.91.** The abstraction problem is a
small-cluster problem: 15 shown summaries rarely all fit one vague phrase *and* get listed.
What would test the obvious next step, none of it done: a prompt that asks for the situation **in
terms of roles and a concrete want** and rejects answers without both; scoring the *specificity* of
the named situation (for example, requiring the named situation to be closer to the member summaries
than to the corpus average in embedding space); and G2 AND G4 evaluated as a pre-registered gate on a
fresh partition, since every labelled cluster now informs this observation.
+16
View File
@@ -0,0 +1,16 @@
test: 41 candidates, 5 labelled 2
FROZEN RULE S1 >= 0.6119 AND S6 <= 0.1603
accepted 5 P2 0.40 P1+ 1.00 R2 0.40
baseline accept all candidates accepted 41 P2 0.12 P1+ 0.51 R2 1.00
baseline B0: tightness filter accepted 18 P2 0.17 P1+ 0.44 R2 0.60
accepted:
T05 label 1 schemes, cons and theft over money
T07 label 1 courtship
T25 label 1 trying to impress or win someone's favour
T35 label 2 coercion over money: threats, bribes, demands for payment
T39 label 2 a spouse schemes against or confronts a spouse over infidelity
rejected label-2:
T16 a newcomer seeks acceptance in a social circle
T17 a proposal or engagement, accepted or refused
T30 a run-in with the police
+52
View File
@@ -0,0 +1,52 @@
"""Check a filled-in review form and turn it into situations.json.
python3 apply_review.py review/k60-s24
Reads candidates.json and review.json from that directory. If the form is complete and consistent, it
writes situations.json there and exits 0. Otherwise it prints every problem at once, writes nothing,
and exits 1.
"""
import datetime, json, pathlib, sys
import review_format as rf
def main(argv):
if len(argv) != 2:
print(__doc__.strip())
return 2
run_dir = pathlib.Path(argv[1])
cand_path, form_path = run_dir / 'candidates.json', run_dir / 'review.json'
for p in (cand_path, form_path):
if not p.exists():
print(f'{p} does not exist. Run review.py first, or check the directory name.')
return 1
candidates = json.loads(cand_path.read_text(encoding='utf-8'))
try:
form = json.loads(form_path.read_text(encoding='utf-8'))
except json.JSONDecodeError as e:
print(f'{form_path} is not valid JSON: line {e.lineno}, column {e.colno}: {e.msg}.')
print('Common causes: a missing comma between fields, a trailing comma before } or ], or a quote left open.')
return 1
errors, warnings, result = rf.validate(candidates, form)
for w in warnings:
print(f'warning: {w}')
if errors:
print(f'\n{len(errors)} problem(s) to fix in {form_path}; nothing was written:')
for e in errors:
print(f' - {e}')
return 1
result['applied'] = datetime.datetime.now().astimezone().isoformat(timespec='seconds')
out = run_dir / 'situations.json'
out.write_text(json.dumps(result, indent=1, ensure_ascii=False), encoding='utf-8')
c = result['counts']
print(f'\n{out}: {c["situations"]} situations from {c["accepted"]} accepted and {c["merged"]} merged '
f'candidates; {c["rejected"]} rejected, {c["skipped"]} skipped.')
for s in result['situations']:
print(f' {s["id"]} ({s["size"]} scenes, {s["stories"]} stories, from {"+".join(s["from"])}): {s["situation"]}')
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))
@@ -0,0 +1,824 @@
{
"D01": [
105,
232,
241,
242,
248,
271,
277,
336,
387,
390,
418,
451,
465,
528,
568,
709,
778,
782,
790,
820
],
"D02": [
63,
81,
222,
240,
251,
281,
296,
297,
386,
481,
544,
551,
589,
745
],
"D03": [
20,
57,
65,
125,
135,
178,
196,
198,
326,
353,
359,
361,
364,
373,
375,
380,
381,
459,
519,
540,
543,
639,
640,
642,
692,
739,
779,
799,
802,
819,
833
],
"D04": [
41,
127,
163,
204,
205,
302,
304,
305,
322,
475,
483,
590,
761,
763,
770
],
"D05": [
73,
82,
156,
157,
158,
225,
389,
430,
485,
486,
487,
488,
514,
653,
787
],
"D06": [
84,
85,
86,
87,
88,
106,
141,
162,
255,
290,
306,
314,
319,
325,
383,
384,
385,
394,
413,
450,
523,
658,
707
],
"D07": [
37,
40,
42,
62,
151,
154,
175,
199,
201,
215,
218,
223,
254,
264,
267,
269,
279,
345,
348,
350,
352,
354,
370,
371,
453,
479,
521,
567,
595,
700,
815,
821,
822,
826
],
"D08": [
75,
76,
246,
591,
645,
666,
670,
789
],
"D09": [
133,
134,
144,
168,
192,
207,
276,
376,
379,
399,
461,
517,
545,
619,
625,
649,
731,
805,
809,
810
],
"D10": [
7,
8,
96,
99,
171,
217,
219,
250,
253,
414,
433,
436,
502,
554,
570,
689
],
"D11": [
21,
104,
124,
138,
140,
208,
263,
282,
330,
331,
369,
377,
401,
437,
440,
492,
518,
569,
629,
633,
634,
636,
637,
638,
641,
643,
646,
687,
727,
736,
804,
811,
831,
832,
834,
835
],
"D12": [
160,
480,
495,
627,
628,
706,
729,
730,
750,
807,
816
],
"D13": [
11,
173,
265,
367,
398,
407,
500,
511,
512,
515,
696,
698,
699,
718,
771,
830
],
"D14": [
109,
164,
249,
270,
315,
316,
374,
539,
541,
562,
564,
583,
671,
708,
717,
719,
743,
747
],
"D15": [
9,
103,
110,
111,
112,
228,
259,
288,
312,
448,
469,
477,
478,
557,
616,
620,
621,
623,
624,
711,
737,
786,
827,
829
],
"D16": [
38,
121,
129,
148,
200,
363,
647,
663,
680,
694,
725,
726,
769
],
"D17": [
14,
292,
346,
524,
525,
527,
529,
575,
664,
744
],
"D18": [
172,
224,
236,
237,
243,
247,
323,
412,
417,
420,
443,
445,
447,
449,
695,
775,
777,
818
],
"D19": [
98,
142,
226,
238,
262,
309,
338,
349,
351,
404,
419,
602,
659,
665,
764
],
"D20": [
6,
68,
116,
145,
318,
548,
667,
668,
793,
795
],
"D21": [
28,
67,
136,
177,
185,
260,
272,
278,
494,
598,
600,
604,
632,
688,
704,
705,
713,
746,
783,
796
],
"D22": [
12,
18,
22,
29,
44,
53,
54,
66,
69,
128,
131,
187,
227,
230,
231,
285,
287,
303,
347,
392,
397,
406,
410,
482,
538,
542,
560,
572,
574,
662,
710,
766,
785,
814
],
"D23": [
123,
176,
391,
516,
652,
654,
655,
791,
792,
794,
800
],
"D24": [
27,
74,
77,
150,
165,
180,
229,
234,
235,
252,
273,
308,
321,
355,
358,
382,
415,
452,
460,
508,
520,
558,
566,
577,
650,
660,
672,
679,
728,
733,
773,
774,
776
],
"D25": [
5,
17,
46,
58,
59,
60,
78,
139,
212,
221,
342,
362,
372,
378,
435,
439,
489,
522,
537,
571,
582,
587,
685,
734
],
"D26": [
33,
209,
210,
211,
213,
216,
310,
311,
337,
396,
499,
741,
753
],
"D27": [
23,
174,
261,
266,
298,
299,
360,
368,
509,
576,
603,
607,
644,
735,
806
],
"D28": [
0,
1,
2,
4,
143,
220,
274,
466,
505,
712,
732,
837
],
"D29": [
51,
61,
97,
130,
132,
147,
149,
153,
182,
239,
257,
472,
473,
474,
484,
536,
561,
618,
828
],
"D30": [
3,
56,
101,
214,
408,
409,
411,
441,
471,
476,
510,
597,
599,
701,
702
],
"D31": [
47,
70,
113,
170,
275,
343,
416,
421,
422,
424,
470,
497,
549,
563,
565,
683,
749,
754,
755,
784,
808,
836
],
"D32": [
19,
24,
25,
100,
159,
506,
559,
605,
673,
674,
675,
676,
677,
684,
781
],
"D33": [
137,
186,
301,
356,
425,
427,
596,
606,
608,
631,
651,
657,
691,
738,
803
],
"D34": [
32,
108,
126,
146,
365,
530,
531,
532,
533,
534,
535,
588,
592,
593,
615,
681,
682,
720,
722,
723,
724,
751,
767,
768
],
"D35": [
16,
26,
39,
52,
55,
71,
107,
166,
167,
258,
289,
291,
400,
426,
446,
493,
550,
573,
584,
586,
622,
648,
661,
686,
690,
697,
801,
817
],
"D36": [
102,
152,
203,
284,
327,
797
],
"D37": [
10,
80,
115,
161,
313,
317,
357,
395,
444,
498,
513,
556,
594,
693,
703,
740,
765,
825
],
"D38": [
50,
64,
83,
114,
122,
206,
307,
341,
429,
431,
434,
496,
714,
715,
716,
772
],
"D39": [
13,
43,
45,
48,
49,
120,
244,
339,
340,
344,
464,
578,
579,
580,
581,
610,
611,
612,
613,
614
],
"D40": [
36,
79,
117,
118,
119,
155,
393,
428,
432,
504,
507,
546,
547,
553,
780
]
}
@@ -0,0 +1,805 @@
{
"T01": [
90,
162,
178,
188,
292,
443,
503,
658,
811,
812
],
"T02": [
116,
125,
214,
227,
261,
288,
312,
363,
375,
448,
478,
547,
593,
594,
647,
702,
703,
711,
721,
786,
829,
831,
832
],
"T03": [
240,
277,
279,
280,
281,
342,
447,
685,
782,
820,
821
],
"T04": [
3,
73,
74,
110,
111,
113,
115,
161,
271,
272,
309,
336,
395,
444,
600,
679,
693,
696,
698,
765
],
"T05": [
37,
58,
75,
151,
172,
173,
175,
177,
199,
201,
218,
236,
251,
264,
265,
267,
323,
328,
361,
367,
370,
371,
415,
479,
500,
540,
543,
777,
815,
822
],
"T06": [
140,
146,
183,
184,
186,
190,
195,
197,
402,
403,
404,
405,
410
],
"T07": [
18,
21,
39,
44,
53,
106,
107,
126,
160,
167,
285,
373,
392,
400,
406,
482,
532,
560,
574,
608,
622,
627,
642,
710,
783,
785,
801,
816,
830
],
"T08": [
103,
134,
165,
360,
477,
545,
571,
576,
577,
602,
625,
632,
729,
810
],
"T09": [
9,
71,
114,
132,
133,
144,
166,
182,
192,
238,
239,
256,
257,
259,
289,
303,
341,
356,
419,
480,
501,
550,
557,
561,
617,
618,
619,
620,
621,
623,
624,
648,
651,
660,
661,
665,
691,
730,
750,
751,
805,
807,
809
],
"T10": [
86,
337,
358,
359,
364,
435,
439,
440,
441,
650
],
"T11": [
108,
325,
326,
484,
531,
558,
615,
795,
800
],
"T12": [
27,
168,
180,
207,
378,
399,
452,
461,
506,
517,
598,
603,
659,
674,
677,
688,
731,
742,
749,
806,
808
],
"T13": [
297,
343,
344,
345,
348,
533,
534,
555,
744
],
"T14": [
5,
46,
60,
78,
139,
174,
196,
212,
221,
230,
333,
362,
369,
372,
423,
489,
492,
522,
537,
569,
587,
609,
635,
641,
643,
734,
735,
797
],
"T15": [
25,
77,
245,
252,
275,
276,
306,
317,
322,
355,
416,
421,
422,
424,
490,
520,
538,
544,
549,
551,
559,
566,
605,
649,
683,
728,
754,
774,
776,
825,
826,
836
],
"T16": [
23,
24,
26,
64,
65,
136,
143,
185,
202,
494,
496,
606,
798
],
"T17": [
17,
22,
30,
35,
47,
127,
170,
269,
283,
287,
380,
381,
401,
426,
427,
526,
542,
556,
585,
596,
631,
639,
646,
692,
736,
755,
779,
799,
802,
803
],
"T18": [
19,
43,
45,
48,
49,
159,
339,
340,
365,
578,
579,
580,
581,
610,
611,
612,
613,
614
],
"T19": [
15,
331,
366,
377,
379,
529,
626,
634,
636,
637,
638,
644,
687
],
"T20": [
96,
217,
219,
220,
250,
274,
313,
432,
433,
502,
505,
689
],
"T21": [
232,
528,
582,
668,
675,
676,
684
],
"T22": [
222,
329,
425,
568,
775
],
"T23": [
7,
8,
124,
171,
206,
253,
282,
308,
316,
338,
398,
414,
418,
420,
434,
436,
466,
504,
509,
514,
553,
554,
564,
570,
712,
714,
716,
741
],
"T24": [
142,
446,
565,
584,
588,
686,
697,
704,
732
],
"T25": [
13,
16,
20,
28,
29,
88,
135,
141,
266,
332,
368,
495,
573,
586,
604,
607,
628,
629,
630,
690,
727,
748,
759,
784,
817,
818,
819
],
"T26": [
189,
191,
193,
194,
203,
204,
205,
247,
263,
284,
592,
595,
669,
695,
709,
804
],
"T27": [
79,
98,
99,
109,
164,
249,
270,
374,
539,
541,
562,
583,
664,
671,
719,
740,
743,
773
],
"T28": [
181,
346,
347,
349,
350,
353,
460,
518,
535,
722,
726,
737,
738,
814
],
"T29": [
155,
233,
234,
262,
546,
780,
834
],
"T30": [
11,
243,
315,
407,
511,
512,
515,
589,
699,
700,
720,
723,
747
],
"T31": [
31,
32,
34,
296,
530,
681,
682,
724,
725,
752,
766,
767,
768
],
"T32": [
76,
100,
105,
128,
235,
237,
246,
327,
382,
397,
472,
473,
474,
483,
507,
548,
645,
666,
667,
670,
678,
708,
717,
718,
770,
788,
789,
790,
792,
793,
828
],
"T33": [
69,
70,
80,
101,
129,
226,
396,
408,
470,
471,
476,
497,
498,
499,
510,
527,
563,
597,
599,
701,
769,
771,
813
],
"T34": [
4,
118,
229,
351,
417,
449,
450,
656,
657,
772,
781
],
"T35": [
10,
12,
38,
42,
59,
62,
121,
324,
352,
354,
409,
662,
680,
694,
739,
823
],
"T36": [
123,
209,
254,
521,
791
],
"T37": [
67,
68,
104,
137,
169,
231,
260,
273,
278,
298,
321,
429,
431,
493,
508,
572,
705,
713,
733,
745,
746,
796
],
"T38": [
57,
61,
63,
66,
97,
120,
130,
147,
150,
198,
242,
244,
314,
438,
445,
464,
519,
536,
601,
640,
824,
827,
833
],
"T39": [
40,
41,
72,
131,
163,
187,
268,
293,
301,
302,
304,
305,
391,
411,
475,
567,
590,
663,
756,
762,
763
],
"T40": [
122,
299,
412,
707,
778
],
"T41": [
82,
102,
156,
157,
158,
225,
290,
430,
485,
486,
487,
488,
516,
652,
653,
654,
655,
787,
794
]
}
+30
View File
@@ -0,0 +1,30 @@
dev: 40 candidates, 5 labelled 2, rule must accept >= 3 of them
baseline accept all candidates accepted 40 P2 0.12 P1+ 0.62 R2 1.00
baseline B0: tightness filter accepted 17 P2 0.24 P1+ 0.76 R2 0.80
best single-signal rule per signal:
S1 >= 0.6153 accepted 9 P2 0.44 P1+ 0.89 R2 0.80
S2 >= 0.9083 accepted 20 P2 0.15 P1+ 0.60 R2 0.60
S3 >= 0.4580 accepted 31 P2 0.16 P1+ 0.68 R2 1.00
S4 >= 0.0295 accepted 14 P2 0.21 P1+ 0.64 R2 0.60
S5 >= 0.1733 accepted 10 P2 0.30 P1+ 0.60 R2 0.60
S6 <= 0.2137 accepted 33 P2 0.15 P1+ 0.70 R2 1.00
leaderboard (all eligible rules):
S1 >= 0.6119 AND S6 <= 0.1603 accepted 5 P2 0.60 P1+ 1.00 R2 0.60
S1 >= 0.6119 AND S6 <= 0.1742 accepted 5 P2 0.60 P1+ 1.00 R2 0.60
S1 >= 0.6153 AND S6 <= 0.1603 accepted 5 P2 0.60 P1+ 1.00 R2 0.60
S1 >= 0.6153 AND S6 <= 0.1742 accepted 5 P2 0.60 P1+ 1.00 R2 0.60
S1 >= 0.6153 AND S5 >= 0.1733 accepted 5 P2 0.60 P1+ 0.80 R2 0.60
S1 >= 0.6119 AND S6 <= 0.2137 accepted 7 P2 0.57 P1+ 1.00 R2 0.80
S1 >= 0.6119 AND S6 <= 0.3012 accepted 7 P2 0.57 P1+ 1.00 R2 0.80
S1 >= 0.6153 AND S6 <= 0.2137 accepted 7 P2 0.57 P1+ 1.00 R2 0.80
S1 >= 0.6153 AND S6 <= 0.3012 accepted 7 P2 0.57 P1+ 1.00 R2 0.80
S1 >= 0.6153 AND S5 >= 0.1278 accepted 7 P2 0.57 P1+ 0.86 R2 0.80
S1 >= 0.6153 AND S5 >= 0.1318 accepted 7 P2 0.57 P1+ 0.86 R2 0.80
S1 >= 0.6153 AND S5 >= 0.1356 accepted 7 P2 0.57 P1+ 0.86 R2 0.80
CHOSEN: S1 >= 0.6119 AND S6 <= 0.1603 -> rule-frozen.json
accepted on dev: D04(2), D09(1), D13(2), D16(2), D33(1)
exit 0
+26
View File
@@ -0,0 +1,26 @@
"""Cut stories into scene-sized chunks on paragraph boundaries."""
import json, pathlib, re
TARGET = 320 # words; a scene is a situation with people in it
stories = json.loads(pathlib.Path('stories.json').read_text(encoding='utf-8'))
chunks = []
for si, s in enumerate(stories):
paras = [p.strip() for p in re.split(r'\n\s*\n', s['text']) if p.strip()]
buf, n = [], 0
for p in paras:
w = len(p.split())
if n + w > TARGET and buf:
chunks.append({'story': si, 'title': s['title'], 'volume': s['volume'],
'text': ' '.join(buf), 'words': n})
buf, n = [], 0
buf.append(p); n += w
if buf and n >= 80:
chunks.append({'story': si, 'title': s['title'], 'volume': s['volume'],
'text': ' '.join(buf), 'words': n})
pathlib.Path('chunks.json').write_text(json.dumps(chunks), encoding='utf-8')
ws = sorted(c['words'] for c in chunks)
print(f'chunks: {len(chunks)} from {len(stories)} stories')
print(f'words/chunk min {ws[0]} median {ws[len(ws)//2]} max {ws[-1]}')
print(f'total words: {sum(ws):,}')
File diff suppressed because one or more lines are too long
+80
View File
@@ -0,0 +1,80 @@
"""Cluster scene embeddings and report what the clusters actually contain.
The question this answers: does a thematically coherent corpus contain
RECURRING situations, or 800 singletons? A pack needs ~15 repeatable
situations per stage; a cluster that draws from many different stories is a
recurring situation, one that draws from a single story is just a scene.
"""
import json, math, pathlib, random, sys
K = int(sys.argv[1]) if len(sys.argv) > 1 else 40
SEED = 11
chunks = json.loads(pathlib.Path('chunks.json').read_text(encoding='utf-8'))
vecs = json.loads(pathlib.Path('embeddings.json').read_text(encoding='utf-8'))
n = min(len(chunks), len(vecs))
chunks, vecs = chunks[:n], vecs[:n]
print(f'clustering {n} chunks into k={K}\n')
def norm(v):
m = math.sqrt(sum(x * x for x in v)) or 1.0
return [x / m for x in v]
vecs = [norm(v) for v in vecs]
dim = len(vecs[0])
def dot(a, b): return sum(x * y for x, y in zip(a, b))
# k-means++ init on cosine distance (vectors are unit length, so dot == cos)
random.seed(SEED)
cent = [vecs[random.randrange(n)]]
while len(cent) < K:
d2 = [min((1 - dot(v, c)) for c in cent) ** 2 for v in vecs]
tot = sum(d2) or 1.0
r = random.random() * tot
acc = 0.0
for i, x in enumerate(d2):
acc += x
if acc >= r:
cent.append(vecs[i]); break
else:
cent.append(vecs[random.randrange(n)])
assign = [0] * n
for it in range(30):
moved = 0
for i, v in enumerate(vecs):
best, bs = 0, -2.0
for k, c in enumerate(cent):
s = dot(v, c)
if s > bs: bs, best = s, k
if assign[i] != best: assign[i] = best; moved += 1
for k in range(K):
mem = [vecs[i] for i in range(n) if assign[i] == k]
if not mem: continue
cent[k] = norm([sum(m[d] for m in mem) / len(mem) for d in range(dim)])
if moved == 0: break
groups = {}
for i, k in enumerate(assign): groups.setdefault(k, []).append(i)
rows = []
for k, idx in groups.items():
stories = {chunks[i]['story'] for i in idx}
coh = sum(dot(vecs[i], cent[k]) for i in idx) / len(idx)
rows.append({'k': k, 'size': len(idx), 'stories': len(stories), 'coh': coh, 'idx': idx})
rows.sort(key=lambda r: (-r['stories'], -r['size']))
print(f"{'size':>5} {'stories':>8} {'coh':>6} sample titles")
print('-' * 92)
for r in rows:
titles = []
for i in r['idx']:
t = chunks[i]['title']
if t not in titles: titles.append(t)
print(f"{r['size']:5} {r['stories']:8} {r['coh']:6.3f} {', '.join(titles[:4])[:66]}")
multi = [r for r in rows if r['stories'] >= 4]
print(f"\nclusters drawing on >=4 different stories: {len(multi)} of {K}")
print(f"clusters that are essentially one story: {sum(1 for r in rows if r['stories'] <= 2)}")
pathlib.Path('clusters.json').write_text(json.dumps(
[{'k': r['k'], 'size': r['size'], 'stories': r['stories'], 'coh': r['coh'], 'idx': r['idx']} for r in rows]))
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+56
View File
@@ -0,0 +1,56 @@
838 texts, resuming at 0, model nomic-embed-text
16/838 2s (7.22/s)
32/838 3s (10.12/s)
48/838 4s (11.75/s)
64/838 5s (12.87/s)
80/838 6s (13.54/s)
96/838 7s (14.07/s)
112/838 8s (14.48/s)
128/838 9s (14.78/s)
144/838 10s (15.01/s)
160/838 11s (15.15/s)
176/838 12s (15.29/s)
192/838 12s (15.41/s)
208/838 13s (15.52/s)
224/838 14s (15.61/s)
240/838 15s (15.70/s)
256/838 16s (15.77/s)
272/838 17s (15.83/s)
288/838 18s (15.88/s)
304/838 19s (15.91/s)
320/838 20s (15.94/s)
336/838 21s (15.98/s)
352/838 22s (15.99/s)
368/838 23s (16.01/s)
384/838 24s (16.00/s)
400/838 25s (16.00/s)
416/838 26s (16.00/s)
432/838 27s (16.03/s)
448/838 28s (16.04/s)
464/838 29s (16.07/s)
480/838 30s (16.07/s)
496/838 31s (16.07/s)
512/838 32s (16.08/s)
528/838 33s (16.08/s)
544/838 34s (16.08/s)
560/838 35s (16.08/s)
576/838 36s (16.07/s)
592/838 37s (16.06/s)
608/838 38s (16.06/s)
624/838 39s (16.07/s)
640/838 40s (16.05/s)
656/838 41s (16.04/s)
672/838 42s (16.03/s)
688/838 43s (16.02/s)
704/838 44s (16.01/s)
720/838 45s (16.00/s)
736/838 46s (15.98/s)
752/838 47s (15.96/s)
768/838 48s (15.95/s)
784/838 49s (15.94/s)
800/838 50s (15.93/s)
816/838 51s (15.91/s)
832/838 52s (15.90/s)
838/838 53s (15.76/s)
done: 838 vectors, 53s this session
exit 0
+37
View File
@@ -0,0 +1,37 @@
"""Embed texts, checkpointing after every batch so an interrupted run resumes.
python3 embed.py chunks.json embeddings.json # the scenes' prose
python3 embed.py summaries.json summary_embeddings.json # one-line situations
python3 embed.py chunks.json embeddings.json --limit 48 # pilot
Input is a JSON list of objects with a 'text' field (chunks.json), or of
strings/objects with a 'summary' field (summaries.json).
"""
import argparse, json, os, pathlib, time
import ollama
ap = argparse.ArgumentParser()
ap.add_argument('src'); ap.add_argument('dst')
ap.add_argument('--limit', type=int, default=None)
ap.add_argument('--batch', type=int, default=16)
args = ap.parse_args()
MODEL = os.environ.get('STP_EMBED_MODEL', 'nomic-embed-text')
items = json.loads(pathlib.Path(args.src).read_text(encoding='utf-8'))
if isinstance(items, dict): items = items['summaries']
texts = [x if isinstance(x, str) else (x.get('summary') or x['text']) for x in items]
if args.limit: texts = texts[:args.limit]
out = pathlib.Path(args.dst)
state = json.loads(out.read_text()) if out.exists() else {'model': MODEL, 'vectors': []}
if state['model'] != MODEL: raise SystemExit(f'{out} was made with {state["model"]}, not {MODEL}')
done = state['vectors']
print(f'{len(texts)} texts, resuming at {len(done)}, model {MODEL}', flush=True)
t0, start = time.time(), len(done)
for i in range(start, len(texts), args.batch):
done.extend(ollama.embed(MODEL, texts[i:i + args.batch]))
out.write_text(json.dumps(state))
el = time.time() - t0
print(f' {len(done)}/{len(texts)} {el:.0f}s ({(len(done) - start) / max(el, 1):.2f}/s)', flush=True)
print(f'done: {len(done)} vectors, {time.time() - t0:.0f}s this session')
File diff suppressed because one or more lines are too long
@@ -0,0 +1,42 @@
{
"file": "embeddings.json",
"chunks": 838,
"rows": [
{
"k": 25,
"sized": 25,
"median_dominant": 0.25,
"recurring": 21,
"coverage": 0.9284009546539379,
"tight_recurring": 9,
"tight_coverage": 0.2863961813842482
},
{
"k": 40,
"sized": 39,
"median_dominant": 0.35714285714285715,
"recurring": 21,
"coverage": 0.7088305489260143,
"tight_recurring": 5,
"tight_coverage": 0.09069212410501193
},
{
"k": 60,
"sized": 55,
"median_dominant": 0.5714285714285714,
"recurring": 20,
"coverage": 0.5501193317422435,
"tight_recurring": 3,
"tight_coverage": 0.02028639618138425
},
{
"k": 100,
"sized": 78,
"median_dominant": 0.6666666666666666,
"recurring": 16,
"coverage": 0.29594272076372313,
"tight_recurring": 0,
"tight_coverage": 0.0
}
]
}
@@ -0,0 +1,82 @@
qwen3:14b: 250 labelled cluster rows; parse failures 0
theta chosen on dev: 0.6
dev FIT >= 0.3 accepted 29 >=1 19 label2 5 P1+ 0.66 recall 0.76
dev FIT >= 0.4 accepted 28 >=1 18 label2 5 P1+ 0.64 recall 0.72
dev FIT >= 0.5 accepted 14 >=1 10 label2 2 P1+ 0.71 recall 0.40
dev FIT >= 0.6 accepted 8 >=1 7 label2 2 P1+ 0.88 recall 0.28
dev FIT >= 0.7 accepted 4 >=1 4 label2 1 P1+ 1.00 recall 0.16
dev FIT >= 0.8 accepted 2 >=1 2 label2 0 P1+ 1.00 recall 0.08
dev FIT >= 0.9 accepted 0 >=1 0 label2 0 P1+ 0.00 recall 0.00
dev FIT >= 1.0 accepted 0 >=1 0 label2 0 P1+ 0.00 recall 0.00
mean FIT by label (all rows):
label 0: n=121 mean 0.40 median 0.42
label 1: n=106 mean 0.47 median 0.47
label 2: n= 23 mean 0.52 median 0.53
PRIMARY: validate + validate3: 148 clusters, 67 labelled >=1
all accepted 148 >=1 67 label2 10 P1+ 0.45 recall 1.00
G2 accepted 49 >=1 36 label2 5 P1+ 0.73 recall 0.54
G4 FIT >= 0.6 accepted 42 >=1 22 label2 4 P1+ 0.52 recall 0.33
G4 AND G2 accepted 10 >=1 10 label2 1 P1+ 1.00 recall 0.15
G4 size <=9 accepted 17 >=1 5 label2 2 P1+ 0.29 recall 0.56 (of 48)
G4 size 10-25 accepted 14 >=1 7 label2 2 P1+ 0.50 recall 0.23 (of 63)
G4 size >=26 accepted 11 >=1 10 label2 0 P1+ 0.91 recall 0.37 (of 37)
secondary: test + recover: 62 clusters, 37 labelled >=1
all accepted 62 >=1 37 label2 8 P1+ 0.60 recall 1.00
G2 accepted 28 >=1 23 label2 5 P1+ 0.82 recall 0.62
G4 FIT >= 0.6 accepted 15 >=1 9 label2 1 P1+ 0.60 recall 0.24
G4 AND G2 accepted 11 >=1 8 label2 1 P1+ 0.73 recall 0.22
G4 size <=9 accepted 1 >=1 0 label2 0 P1+ 0.00 recall 0.00 (of 8)
G4 size 10-25 accepted 5 >=1 3 label2 1 P1+ 0.60 recall 0.15 (of 30)
G4 size >=26 accepted 9 >=1 6 label2 0 P1+ 0.67 recall 0.35 (of 24)
criterion 1 (P1+ >= 0.80): fail (0.52)
criterion 2 (more >=1 than G2): fail (22 vs 36)
criterion 3 (<=9 members P1+ >= 0.67 if >= 3 accepted): fail (17 accepted, P1+ 0.29)
OVERALL: fail
accepted on the primary set, model situation vs label name:
Y026 size 6 label 0 fit 1.00 model: Someone wants something from someone else, but there is | label:
Y052 size 23 label 2 fit 1.00 model: Planning or attending a dinner with hidden intentions | label: an invitation to dine
X002 size 10 label 1 fit 0.90 model: Someone seeks artistic validation or support from anoth | label: struggling artists and money
Y010 size 18 label 1 fit 0.87 model: Artist seeking financial support or patronage | label: struggling artists and money
Y053 size 45 label 1 fit 0.87 model: Conflict between individuals over personal issues | label: a brawl or showdown
X015 size 38 label 0 fit 0.80 model: Seeking something from someone in a city setting | label:
X030 size 18 label 1 fit 0.80 model: Confrontation between individuals or groups leading to | label: a brawl or showdown
X055 size 21 label 2 fit 0.80 model: Marital conflict and tension | label: a spouse schemes against or confronts a spouse over infidelity
Y008 size 5 label 0 fit 0.80 model: Someone holds power over someone else | label:
Y011 size 15 label 0 fit 0.80 model: Someone confronts someone else over a personal issue | label:
Y034 size 5 label 0 fit 0.80 model: conflict between perception and reality | label:
X038 size 8 label 0 fit 0.75 model: Struggling to find acceptance or connection in a hostil | label:
X048 size 20 label 1 fit 0.73 model: Financial transaction with potential conflict | label: money owed and repayment
X058 size 16 label 0 fit 0.73 model: A host welcomes a visitor with mixed emotions and inten | label:
Y017 size 45 label 1 fit 0.73 model: Invitation to dinner with hidden intentions | label: an invitation to dine
Y073 size 36 label 1 fit 0.73 model: Someone demands information or action from another, who | label: writers and editors
X013 size 7 label 1 fit 0.71 model: Seeking financial advice | label: what to do with money, and whose advice to take
X024 size 7 label 0 fit 0.71 model: Demanding repayment or compensation | label:
Y030 size 7 label 1 fit 0.71 model: Social interaction at a dining establishment | label: who holds sway in a dining room or hotel
X020 size 24 label 0 fit 0.67 model: secretive interactions between individuals | label:
X050 size 45 label 1 fit 0.67 model: Financial transactions involving coercion or manipulati | label: schemes, cons and theft over money
X059 size 19 label 1 fit 0.67 model: Marriage proposals and preparations | label: a proposal or engagement, accepted or refused
X068 size 6 label 2 fit 0.67 model: Marital conflict and confrontation | label: a spouse schemes against or confronts a spouse over infidelity
X072 size 17 label 0 fit 0.67 model: Resentment over unreciprocated affection | label:
Y031 size 6 label 0 fit 0.67 model: Older person mentoring younger person | label:
Y036 size 6 label 0 fit 0.67 model: envy and desire for wealth or power | label:
Y040 size 6 label 1 fit 0.67 model: Competing for social status through dining experiences | label: who holds sway in a dining room or hotel
Y068 size 6 label 0 fit 0.67 model: Conflict between individuals with opposing goals | label:
X010 size 11 label 0 fit 0.64 model: competition for status or position in a city | label:
Y050 size 8 label 0 fit 0.62 model: Someone trying to win someone else's affection | label:
Y063 size 8 label 0 fit 0.62 model: Power dynamics between individuals | label:
X009 size 45 label 1 fit 0.60 model: conflict over marriage proposals and social expectation | label: a proposal or engagement, accepted or refused
X012 size 10 label 0 fit 0.60 model: A person of high status seeking to help someone in need | label:
X014 size 10 label 0 fit 0.60 model: Someone threatens someone else | label:
X037 size 5 label 0 fit 0.60 model: conflict between individuals due to past relationships | label:
X042 size 5 label 2 fit 0.60 model: Dispute over payment for a service | label: a public quarrel with a shopkeeper, driver or official
X043 size 38 label 1 fit 0.60 model: Dinner party with social dynamics | label: who holds sway in a dining room or hotel
X056 size 45 label 1 fit 0.60 model: Attempting to gain favor or influence through social in | label: trying to impress or win someone's favour
X057 size 45 label 1 fit 0.60 model: Someone tries to manipulate someone else for personal g | label: schemes, cons and theft over money
Y021 size 45 label 1 fit 0.60 model: Someone manipulates someone into a transaction for pers | label: schemes, cons and theft over money
Y033 size 5 label 0 fit 0.60 model: Someone is suspected of a crime they did not commit | label:
Y043 size 31 label 1 fit 0.60 model: Confrontation over a dispute or accusation | label: a run-in with the police
@@ -0,0 +1,90 @@
qwen2.5:3b-instruct: 250 labelled cluster rows; parse failures 1
theta chosen on dev: 0.6
dev FIT >= 0.3 accepted 22 >=1 15 label2 4 P1+ 0.68 recall 0.60
dev FIT >= 0.4 accepted 20 >=1 13 label2 3 P1+ 0.65 recall 0.52
dev FIT >= 0.5 accepted 16 >=1 11 label2 2 P1+ 0.69 recall 0.44
dev FIT >= 0.6 accepted 9 >=1 8 label2 2 P1+ 0.89 recall 0.32
dev FIT >= 0.7 accepted 6 >=1 5 label2 2 P1+ 0.83 recall 0.20
dev FIT >= 0.8 accepted 4 >=1 4 label2 2 P1+ 1.00 recall 0.16
dev FIT >= 0.9 accepted 2 >=1 2 label2 1 P1+ 1.00 recall 0.08
dev FIT >= 1.0 accepted 1 >=1 1 label2 0 P1+ 1.00 recall 0.04
mean FIT by label (all rows):
label 0: n=121 mean 0.39 median 0.40
label 1: n=106 mean 0.49 median 0.50
label 2: n= 23 mean 0.42 median 0.33
PRIMARY: validate + validate3: 148 clusters, 67 labelled >=1
all accepted 148 >=1 67 label2 10 P1+ 0.45 recall 1.00
G2 accepted 49 >=1 36 label2 5 P1+ 0.73 recall 0.54
G4 FIT >= 0.6 accepted 50 >=1 24 label2 4 P1+ 0.48 recall 0.36
G4 AND G2 accepted 18 >=1 11 label2 1 P1+ 0.61 recall 0.16
G4 size <=9 accepted 13 >=1 3 label2 1 P1+ 0.23 recall 0.33 (of 48)
G4 size 10-25 accepted 24 >=1 12 label2 3 P1+ 0.50 recall 0.39 (of 63)
G4 size >=26 accepted 13 >=1 9 label2 0 P1+ 0.69 recall 0.33 (of 37)
secondary: test + recover: 62 clusters, 37 labelled >=1
all accepted 62 >=1 37 label2 8 P1+ 0.60 recall 1.00
G2 accepted 28 >=1 23 label2 5 P1+ 0.82 recall 0.62
G4 FIT >= 0.6 accepted 21 >=1 15 label2 0 P1+ 0.71 recall 0.41
G4 AND G2 accepted 14 >=1 12 label2 0 P1+ 0.86 recall 0.32
G4 size <=9 accepted 1 >=1 0 label2 0 P1+ 0.00 recall 0.00 (of 8)
G4 size 10-25 accepted 8 >=1 5 label2 0 P1+ 0.62 recall 0.25 (of 30)
G4 size >=26 accepted 12 >=1 10 label2 0 P1+ 0.83 recall 0.59 (of 24)
criterion 1 (P1+ >= 0.80): fail (0.48)
criterion 2 (more >=1 than G2): fail (24 vs 36)
criterion 3 (<=9 members P1+ >= 0.67 if >= 3 accepted): fail (13 accepted, P1+ 0.23)
OVERALL: fail
accepted on the primary set, model situation vs label name:
X003 size 39 label 0 fit 1.00 model: demand and confrontation | label:
X019 size 45 label 1 fit 1.00 model: tension between unequal parties | label: a public quarrel with a shopkeeper, driver or official
X067 size 23 label 0 fit 1.00 model: power struggle/conflict over resources | label:
Y006 size 45 label 1 fit 1.00 model: manipulation and exploitation | label: schemes, cons and theft over money
Y008 size 5 label 0 fit 1.00 model: power struggle/conflict | label:
Y017 size 45 label 1 fit 1.00 model: coercion and manipulation for personal gain | label: an invitation to dine
Y032 size 13 label 1 fit 1.00 model: confrontation over a personal issue | label: a run-in with the police
Y040 size 6 label 1 fit 1.00 model: people seek social status or attention | label: who holds sway in a dining room or hotel
Y044 size 5 label 0 fit 1.00 model: dinner party | label:
Y047 size 18 label 2 fit 1.00 model: competing for status or position | label: working girls: jobs, wages and standing
Y053 size 45 label 1 fit 1.00 model: confrontation | label: a brawl or showdown
X035 size 45 label 0 fit 0.93 model: Tension between parties | label:
X043 size 38 label 1 fit 0.93 model: dinner party/hosting | label: who holds sway in a dining room or hotel
Y071 size 21 label 1 fit 0.93 model: Negotiation and deal-making | label: schemes, cons and theft over money
Y074 size 11 label 1 fit 0.91 model: courtship and social status | label: working girls: jobs, wages and standing
Y019 size 10 label 0 fit 0.90 model: seeking novelty or adventure | label:
Y063 size 8 label 0 fit 0.88 model: power dynamics in social hierarchies | label:
Y052 size 23 label 2 fit 0.87 model: dinner plans and dynamics | label: an invitation to dine
X028 size 6 label 0 fit 0.83 model: power dynamics in social hierarchies | label:
X012 size 10 label 0 fit 0.80 model: people seeking or offering help or support | label:
Y001 size 23 label 0 fit 0.80 model: Money disputes and transactions | label:
Y066 size 17 label 0 fit 0.80 model: power dynamics in luxury vs. poverty | label:
Y070 size 5 label 0 fit 0.80 model: people pursuing their livelihood or interests | label:
Y002 size 9 label 0 fit 0.78 model: manipulation and hidden agendas | label:
X011 size 43 label 1 fit 0.73 model: NEGOTIATION OVER RESOURCES OR SERVICES | label: drinking in the saloon
X020 size 24 label 0 fit 0.73 model: people hiding or avoiding attention | label:
X033 size 45 label 0 fit 0.73 model: negotiation and payment | label:
X036 size 47 label 1 fit 0.73 model: reveal death to family | label: illness, loss and a missing relative
X048 size 20 label 1 fit 0.73 model: financial transaction or dispute | label: money owed and repayment
X049 size 25 label 0 fit 0.73 model: coercion or manipulation | label:
X055 size 21 label 2 fit 0.73 model: marital conflict | label: a spouse schemes against or confronts a spouse over infidelity
X058 size 16 label 0 fit 0.73 model: welcoming and revealing history | label:
Y011 size 15 label 0 fit 0.73 model: conflict between individuals seeking different outcomes | label:
Y022 size 24 label 1 fit 0.73 model: con or scam | label: schemes, cons and theft over money
Y062 size 45 label 1 fit 0.73 model: Confrontation over a personal relationship | label: a spouse schemes against or confronts a spouse over infidelity
X039 size 11 label 1 fit 0.73 model: Workplace conflict and exploitation | label: working girls: jobs, wages and standing
X024 size 7 label 0 fit 0.71 model: NEGOCIACTION | label:
Y030 size 7 label 1 fit 0.71 model: dining and socializing | label: who holds sway in a dining room or hotel
X053 size 16 label 0 fit 0.67 model: exploit and exploitation | label:
X057 size 45 label 1 fit 0.67 model: NEGOTIATION AND POWER PLAY | label: schemes, cons and theft over money
X059 size 19 label 1 fit 0.67 model: Wedding elopement and deception | label: a proposal or engagement, accepted or refused
X063 size 6 label 0 fit 0.67 model: confrontation | label:
Y048 size 12 label 0 fit 0.67 model: seeking advice or guidance | label:
Y055 size 6 label 0 fit 0.67 model: confrontation | label:
Y020 size 11 label 0 fit 0.64 model: seeking connections or companionship | label:
Y029 size 8 label 0 fit 0.62 model: dinner party with hidden agendas | label:
X041 size 17 label 1 fit 0.60 model: manipulation and control | label: money and marriage: wealthy suitors, inheritances
X042 size 5 label 2 fit 0.60 model: argue over payment | label: a public quarrel with a shopkeeper, driver or official
X045 size 25 label 1 fit 0.60 model: seeking/stuck in job/searching employment | label: struggling artists and money
X073 size 45 label 0 fit 0.60 model: coercion and manipulation | label:
@@ -0,0 +1,42 @@
method acc P1+ P2 #2 distinct dup names cover multi success
B 4 1.00 0.00 0 4 0 13% 0 -
M1 4 1.00 0.00 0 4 0 13% 0 fail
M2 3 1.00 1.00 3 3 0 5% 0 fail
M3 16 0.69 0.00 0 10 1 45% 68 fail
per method, accepted clusters:
B:
R001 size 13 label 1 an inheritance or fortune and what it obliges
R006 size 36 label 1 a spouse schemes against or confronts a spouse over infidelity
R007 size 38 label 1 schemes, cons and theft over money
R012 size 22 label 1 who holds sway in a dining room or hotel
M1:
R001 size 13 label 1 an inheritance or fortune and what it obliges
R006 size 36 label 1 a spouse schemes against or confronts a spouse over infidelity
R007 size 38 label 1 schemes, cons and theft over money
R012 size 22 label 1 who holds sway in a dining room or hotel
M2:
R011 size 14 label 2 money and marriage: wealthy suitors, inheritances
R015 size 15 label 2 a spouse schemes against or confronts a spouse over infidelity
R020 size 17 label 2 someone coerces someone with a threat
M3:
R002 size 30 label 0 -
R003 size 30 label 1 someone coerces someone with a threat
R004 size 28 label 1 a run-in with the police
R005 size 30 label 0 -
R006 size 36 label 1 a spouse schemes against or confronts a spouse over infidelity
R007 size 38 label 1 schemes, cons and theft over money
R008 size 30 label 1 courtship
R009 size 30 label 1 coercion over money: threats, bribes, demands for payment
R010 size 37 label 1 courtship
R013 size 30 label 0 -
R014 size 30 label 1 drinking in the saloon
R016 size 17 label 0 -
R017 size 30 label 1 money owed and repayment
R018 size 39 label 1 trying to impress or win someone's favour
R019 size 30 label 1 who holds sway in a dining room or hotel
R021 size 30 label 0 -
@@ -0,0 +1,90 @@
"""Score G4 (model-judged FIT) against the blind labels (SELECTION.md, "G4").
python3 evaluate_judge.py qwen2.5:3b-instruct
"""
import hashlib, json, pathlib, statistics, sys
import gate2 as g
MODEL = sys.argv[1]
judged = json.loads(pathlib.Path(f"judge-{MODEL.replace(':', '_').replace('/', '_')}.json").read_text())
G2 = json.loads(pathlib.Path('gate2-frozen.json').read_text())
def key(members):
return hashlib.sha1(','.join(map(str, sorted(members))).encode()).hexdigest()[:16]
sources = [('dev', 'candidates-dev.json', 'labels-dev.json', False), ('test', 'candidates-test.json', 'labels-test.json', False),
('recover', 'recover-map.json', 'labels-recover.json', True), ('validate', 'validate-map.json', 'labels-validate.json', True),
('validate3', 'validate3-map.json', 'labels-validate3.json', True)]
rows = []
for name, cfile, lfile, is_map in sources:
cand = json.loads(pathlib.Path(cfile).read_text())
lab = json.loads(pathlib.Path(lfile).read_text())
for cid, v in cand.items():
members = v['members'] if is_map else v
j = judged.get(key(members))
if j is None: continue
sig = g.signals(members)
rows.append({'set': name, 'id': cid, 'label': lab[cid]['label'], 'name': lab[cid]['name'],
'size': len(members), 'fit': j['fit'], 'parsed': j['parsed'], 'situation': j['situation'],
'g2': g.g2_passes(sig, G2)})
def score(sub, accept):
acc = [r for r in sub if accept(r)]
n1 = sum(r['label'] >= 1 for r in acc)
return {'accepted': len(acc), 'label1plus': n1, 'label2': sum(r['label'] == 2 for r in acc),
'P1+': n1 / len(acc) if acc else 0.0,
'recall1+': n1 / max(1, sum(r['label'] >= 1 for r in sub))}
def line(label, s):
return (f" {label:22} accepted {s['accepted']:3} >=1 {s['label1plus']:3} label2 {s['label2']:2} "
f"P1+ {s['P1+']:.2f} recall {s['recall1+']:.2f}")
dev = [r for r in rows if r['set'] == 'dev']
best = None
for theta in (0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0):
s = score(dev, lambda r: r['fit'] >= theta)
if s['accepted'] == 0 or s['P1+'] < 0.85: continue
k = (s['label1plus'], s['label2'], theta)
if best is None or k > best[0]: best = (k, theta)
theta = best[1] if best else None
print(f'{MODEL}: {len(rows)} labelled cluster rows; parse failures {sum(not r["parsed"] for r in rows)}')
print(f'theta chosen on dev: {theta}' + ('' if theta is not None else ' (no theta reaches P1+ >= 0.85 on dev)'))
for t in (0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0):
print(line(f'dev FIT >= {t}', score(dev, lambda r: r['fit'] >= t)))
print('\nmean FIT by label (all rows):')
for lab in (0, 1, 2):
f = [r['fit'] for r in rows if r['label'] == lab]
print(f' label {lab}: n={len(f):3} mean {statistics.mean(f):.2f} median {statistics.median(f):.2f}')
if theta is not None:
g4 = lambda r: r['fit'] >= theta
for title, names in (('PRIMARY: validate + validate3', ('validate', 'validate3')), ('secondary: test + recover', ('test', 'recover'))):
sub = [r for r in rows if r['set'] in names]
print(f'\n{title}: {len(sub)} clusters, {sum(r["label"] >= 1 for r in sub)} labelled >=1')
print(line('all', score(sub, lambda r: True)))
print(line('G2', score(sub, lambda r: r['g2'])))
print(line(f'G4 FIT >= {theta}', score(sub, g4)))
print(line('G4 AND G2', score(sub, lambda r: g4(r) and r['g2'])))
for band, lo, hi in (('<=9', 0, 9), ('10-25', 10, 25), ('>=26', 26, 999)):
b = [r for r in sub if lo <= r['size'] <= hi]
print(line(f' G4 size {band}', score(b, g4)) + f' (of {len(b)})')
prim = [r for r in rows if r['set'] in ('validate', 'validate3')]
s4, s2 = score(prim, g4), score(prim, lambda r: r['g2'])
small = score([r for r in prim if r['size'] <= 9], g4)
c1 = s4['P1+'] >= 0.80
c2 = s4['label1plus'] > s2['label1plus']
c3 = small['accepted'] < 3 or small['P1+'] >= 0.67
print(f'\ncriterion 1 (P1+ >= 0.80): {"PASS" if c1 else "fail"} ({s4["P1+"]:.2f})')
print(f'criterion 2 (more >=1 than G2): {"PASS" if c2 else "fail"} ({s4["label1plus"]} vs {s2["label1plus"]})')
print(f'criterion 3 (<=9 members P1+ >= 0.67 if >= 3 accepted): {"PASS" if c3 else "fail"} '
f'({small["accepted"]} accepted, P1+ {small["P1+"]:.2f})')
print(f'OVERALL: {"PASS" if c1 and c2 and c3 else "fail"}')
print('\naccepted on the primary set, model situation vs label name:')
for r in sorted(prim, key=lambda r: -r['fit']):
if g4(r):
print(f" {r['id']} size {r['size']:2} label {r['label']} fit {r['fit']:.2f} model: {r['situation'][:55]:55} | label: {r['name']}")
pathlib.Path(f"judge-result-{MODEL.replace(':', '_')}.json").write_text(json.dumps(
{'theta': theta, 'primary_G4': s4, 'primary_G2': s2, 'small': small, 'criteria': [c1, c2, c3]}, indent=1))
@@ -0,0 +1,46 @@
"""Score the recall-recovery methods against the blind labels (SELECTION.md, "Recovering recall").
python3 evaluate_recover.py
"""
import collections, json, pathlib
mapping = json.loads(pathlib.Path('recover-map.json').read_text())
labels = json.loads(pathlib.Path('labels-recover.json').read_text())
assert all(labels[r]['label'] in (0, 1, 2) for r in mapping), 'labels-recover.json is incomplete'
N_SCENES = 838
stats = {}
for method in ('B', 'M1', 'M2', 'M3'):
ids = [r for r, e in mapping.items() if method in e['methods']]
lab = [labels[r]['label'] for r in ids]
names = [labels[r]['name'].strip().lower() for r in ids if labels[r]['label'] >= 1]
scenes = collections.Counter(i for r in ids for i in mapping[r]['members'])
stats[method] = {
'accepted': len(ids),
'precision1plus': sum(l >= 1 for l in lab) / len(ids) if ids else 0.0,
'precision2': sum(l == 2 for l in lab) / len(ids) if ids else 0.0,
'label2': sum(l == 2 for l in lab),
'distinct_situations': len(set(names)),
'repeated_names': sum(c - 1 for c in collections.Counter(names).values() if c > 1),
'coverage': len(scenes) / N_SCENES,
'scenes_in_several': sum(v > 1 for v in scenes.values()),
'ids': ids,
}
b = stats['B']
print(f"{'method':6} {'acc':>4} {'P1+':>5} {'P2':>5} {'#2':>3} {'distinct':>8} {'dup names':>9} {'cover':>6} {'multi':>5} success")
for m, s in stats.items():
ok = (m != 'B' and s['accepted'] >= 2 * b['accepted'] and s['precision1plus'] >= 0.80
and s['distinct_situations'] >= 2 * b['distinct_situations'])
print(f"{m:6} {s['accepted']:4} {s['precision1plus']:5.2f} {s['precision2']:5.2f} {s['label2']:3} "
f"{s['distinct_situations']:8} {s['repeated_names']:9} {s['coverage']:6.0%} {s['scenes_in_several']:5} "
f"{'-' if m == 'B' else ('PASS' if ok else 'fail')}")
print('\nper method, accepted clusters:')
for m, s in stats.items():
print(f'\n{m}:')
for r in s['ids']:
e = mapping[r]
print(f" {r} size {len(e['members']):2} label {labels[r]['label']} {labels[r]['name'] or '-'}")
pathlib.Path('recover-result.json').write_text(json.dumps(
{m: {k: v for k, v in s.items() if k != 'ids'} for m, s in stats.items()}, indent=1))
@@ -0,0 +1,6 @@
{
"S1": 0.6036626536817667,
"Z1": 5,
"MMIN": null,
"W": 0.6
}
File diff suppressed because it is too large Load Diff
+182
View File
@@ -0,0 +1,182 @@
"""G2, the size-invariant gate: signals, the old gate for comparison, and k-means. No inference.
Import it from the probe directory. On first import it builds and caches pairwise similarities
(sim.pkl) and the same-size random baseline for Z1 (null.pkl).
S1 mean summary cosine over cross-story member pairs
Z1 S1 as a z-score against random member sets of the same size
MMIN lowest member-level mean cosine to members of other stories
W largest share among words whose sharing is significant (hypergeometric, Bonferroni 0.01)
"""
import collections, json, math, pathlib, pickle, random, re
HERE = pathlib.Path(__file__).resolve().parent
MIN_SIZE, MIN_STORIES, MAX_DOMINANT = 5, 4, 0.40
chunks = json.loads((HERE / 'chunks.json').read_text(encoding='utf-8'))
_raw = json.loads((HERE / 'summary_embeddings.json').read_text())
_vecs = _raw['vectors'] if isinstance(_raw, dict) else _raw
n = min(len(chunks), len(_vecs))
def norm(v):
m = math.sqrt(sum(x * x for x in v)) or 1.0
return [x / m for x in v]
V = [norm(v) for v in _vecs[:n]]
dim = len(V[0])
story = [chunks[i]['story'] for i in range(n)]
text = {x['chunk']: x['summary'] for x in
json.loads((HERE / 'summaries_clean.json').read_text(encoding='utf-8'))['summaries']}
def dot(a, b):
s = 0.0
for x, y in zip(a, b): s += x * y
return s
_sim_path = HERE / 'sim.pkl'
if _sim_path.exists():
SIM = pickle.loads(_sim_path.read_bytes())
else:
SIM = [[0.0] * n for _ in range(n)]
for a in range(n):
va, row = V[a], SIM[a]
for b in range(a, n):
s = dot(va, V[b])
row[b] = s
SIM[b][a] = s
_sim_path.write_bytes(pickle.dumps(SIM))
# Identical to signals.py.
STOP = set("""a an the and or but of to in on at for with by from as into over under about after before
while during than then that this these those it its his her hers him he she they them their theirs we our
you your i me my is are was were be been being has have had do does did not no nor so such who whom whose
which what when where why how all any each both either neither one two some other others another more most
less least very just only also even yet still now up down out off away back again once own same too can
could will would shall should may might must upon despite toward towards between among amid amidst
someone someone's someone’s""".split())
docs = [set(re.findall(r"[a-z][a-z'’]+", text[i].lower())) - STOP for i in range(n)]
df = collections.Counter(w for d in docs for w in d)
ALPHA = 0.01 / len(df)
def describe(m):
counts = collections.Counter(story[i] for i in m)
return len(m), len(counts), max(counts.values()) / len(m)
def eligible(m):
size, nst, dom = describe(m)
return size >= MIN_SIZE and nst >= MIN_STORIES and dom <= MAX_DOMINANT
def cohesion(m):
"""(S1, MMIN)."""
tot, cnt, lowest = 0.0, 0, None
for a in m:
s, c, row = 0.0, 0, SIM[a]
for b in m:
if story[a] != story[b]:
s += row[b]; c += 1
if c:
tot += s; cnt += c
mean = s / c
lowest = mean if lowest is None else min(lowest, mean)
return (tot / cnt if cnt else 0.0), (lowest if lowest is not None else 0.0)
# Same-size random baseline for Z1.
_null_path = HERE / 'null.pkl'
if _null_path.exists():
NULL = pickle.loads(_null_path.read_bytes())
else:
rnd, NULL = random.Random(2026), {}
for m in range(5, 151):
samples, need = [], 300 if m <= 40 else 120
while len(samples) < need:
members = rnd.sample(range(n), m)
if eligible(members):
samples.append(cohesion(members)[0])
mu = sum(samples) / len(samples)
sd = math.sqrt(sum((x - mu) ** 2 for x in samples) / (len(samples) - 1))
NULL[m] = (mu, sd)
_null_path.write_bytes(pickle.dumps(NULL))
def _lchoose(a, b):
return math.lgamma(a + 1) - math.lgamma(b + 1) - math.lgamma(a - b + 1)
def hyper_sf(c, m, k, total):
"""P(X >= c) for X ~ Hypergeometric(total, k successes, m draws)."""
top = min(m, k)
if c > top: return 0.0
logs = [_lchoose(k, x) + _lchoose(total - k, m - x) - _lchoose(total, m)
for x in range(c, top + 1) if m - x <= total - k]
if not logs: return 0.0
mx = max(logs)
return math.exp(mx) * sum(math.exp(l - mx) for l in logs)
def word_dominance(m):
"""(W, word): largest member share among significantly shared words."""
size = len(m)
cw = collections.Counter(w for i in m for w in docs[i])
best = (0.0, '')
for w, c in cw.items():
if c < 2: continue
if hyper_sf(c, size, df[w], n) <= ALPHA and c / size > best[0]:
best = (c / size, w)
return best
def old_s6(m):
"""The first gate's S6, identical to signals.py."""
size = len(m)
cw = collections.Counter(w for i in m for w in docs[i])
best = None
for w, c in cw.items():
if c < 2: continue
score = math.log((c + .5) / (size - c + .5)) - math.log((df[w] + .5) / (n - df[w] + .5))
if best is None or score > best[0]: best = (score, c)
return best[1] / size if best else 0.0
def signals(m):
size, nst, dom = describe(m)
s1, mmin = cohesion(m)
mu, sd = NULL[min(max(size, 5), 150)]
w, word = word_dominance(m)
return {'size': size, 'stories': nst, 'dominant': dom, 'S1': s1, 'Z1': (s1 - mu) / sd,
'MMIN': mmin, 'W': w, 'W_word': word, 'S6_old': old_s6(m)}
OLD_GATE = json.loads((HERE / 'rule-frozen.json').read_text())
_OLD = {s: t for s, _, t in OLD_GATE['terms']}
def old_passes(sig):
return sig['size'] >= MIN_SIZE and sig['stories'] >= MIN_STORIES and sig['dominant'] <= MAX_DOMINANT \
and sig['S1'] >= _OLD['S1'] and sig['S6_old'] <= _OLD['S6']
def g2_passes(sig, gate):
if not (sig['size'] >= MIN_SIZE and sig['stories'] >= MIN_STORIES and sig['dominant'] <= MAX_DOMINANT):
return False
if gate.get('S1') is not None and sig['S1'] < gate['S1']: return False
if gate.get('Z1') is not None and sig['Z1'] < gate['Z1']: return False
if gate.get('MMIN') is not None and sig['MMIN'] < gate['MMIN']: return False
if gate.get('W') is not None and sig['W'] >= gate['W']: return False
return True
def kmeans(k, seed, iters=15):
"""Identical to measure.py's k-means over the summary vectors."""
rnd = random.Random(seed)
cent = [V[i] for i in rnd.sample(range(n), k)]
assign = [-1] * n
for _ in range(iters):
moved = 0
for i, v in enumerate(V):
best, bs = 0, -2.0
for j, c in enumerate(cent):
s = dot(v, c)
if s > bs: bs, best = s, j
if assign[i] != best: assign[i] = best; moved += 1
if moved == 0: break
groups = collections.defaultdict(list)
for i, j in enumerate(assign): groups[j].append(i)
for j, mem in groups.items():
cent[j] = norm([sum(V[i][d] for i in mem) / len(mem) for d in range(dim)])
groups = collections.defaultdict(list)
for i, j in enumerate(assign): groups[j].append(i)
return [sorted(g) for g in groups.values()]
def centroid(m):
return norm([sum(V[i][d] for i in m) / len(m) for d in range(dim)])
@@ -0,0 +1,6 @@
{
"S1": 0.6175176123715982,
"PCT": 0.9,
"MMIN": 0.5295953845017977,
"W": 0.6
}
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
"""G3: S1 floor, percentile against the same-size null, mandatory member floor (MMIN), optional W.
Builds on gate2 (similarities, word test, k-means). On first import it samples the same-size null
distribution of S1 and caches the sorted samples in null-samples.pkl.
"""
import bisect, pathlib, pickle, random
import gate2 as g
HERE = pathlib.Path(__file__).resolve().parent
_path = HERE / 'null-samples.pkl'
if _path.exists():
NULLS = pickle.loads(_path.read_bytes())
else:
rnd, NULLS = random.Random(3033), {}
for m in range(5, 151):
need, samples = (1000 if m <= 60 else 200), []
while len(samples) < need:
members = rnd.sample(range(g.n), m)
if g.eligible(members):
samples.append(g.cohesion(members)[0])
NULLS[m] = sorted(samples)
_path.write_bytes(pickle.dumps(NULLS))
def percentile(s1, size):
samples = NULLS[min(max(size, 5), 150)]
return bisect.bisect_left(samples, s1) / len(samples)
def signals(m):
sig = g.signals(m) # size, stories, dominant, S1, Z1, MMIN, W, W_word, S6_old
sig['PCT'] = percentile(sig['S1'], sig['size'])
return sig
def passes(sig, gate):
if not (sig['size'] >= g.MIN_SIZE and sig['stories'] >= g.MIN_STORIES and sig['dominant'] <= g.MAX_DOMINANT):
return False
if sig['S1'] < gate['S1'] or sig['PCT'] < gate['PCT'] or sig['MMIN'] < gate['MMIN']:
return False
if gate.get('W') is not None and sig['W'] >= gate['W']:
return False
return True
+27
View File
@@ -0,0 +1,27 @@
qwen3:14b: 250 distinct clusters, 5 already judged
10/250 28s parse failures 0 last: D15 fit 0.47 "eviction threat or action"
20/250 58s parse failures 0 last: D25 fit 0.53 "Wealthy individual seeking social or personal advancement th"
30/250 89s parse failures 0 last: D35 fit 0.47 "Someone is suspicious of another person's intentions"
40/250 119s parse failures 0 last: T05 fit 0.73 "Attempting to obtain money through deception or coercion"
50/250 147s parse failures 0 last: T15 fit 0.47 "Someone pressures someone else into an action against their "
60/250 175s parse failures 0 last: T25 fit 0.33 "Someone trying to impress someone else with their qualities "
70/250 204s parse failures 0 last: T35 fit 0.53 "Threats and demands for money"
80/250 232s parse failures 0 last: R004 fit 0.60 "Confrontation between individuals over a personal or social "
90/250 264s parse failures 0 last: R014 fit 0.73 "Drinking in a bar with social tension"
100/250 296s parse failures 0 last: X003 fit 0.27 "Someone courts someone, while someone interrupts them"
110/250 326s parse failures 0 last: X013 fit 0.71 "Seeking financial advice"
120/250 355s parse failures 0 last: X023 fit 0.33 "Trying to impress someone through a dinner invitation"
130/250 378s parse failures 0 last: X033 fit 0.53 "someone pressures someone else for personal gain"
140/250 405s parse failures 0 last: X043 fit 0.60 "Dinner party with social dynamics"
150/250 436s parse failures 0 last: X053 fit 0.27 "Exploitation of the naive or vulnerable"
160/250 475s parse failures 0 last: X063 fit 0.50 "Confrontation between individuals over a disagreement or con"
170/250 526s parse failures 0 last: X073 fit 0.53 "Manipulation for personal gain"
180/250 586s parse failures 0 last: Y010 fit 0.87 "Artist seeking financial support or patronage"
190/250 643s parse failures 0 last: Y020 fit 0.45 "Seeking relief from hardship in a city"
200/250 690s parse failures 0 last: Y030 fit 0.71 "Social interaction at a dining establishment"
210/250 722s parse failures 0 last: Y040 fit 0.67 "Competing for social status through dining experiences"
220/250 764s parse failures 0 last: Y050 fit 0.62 "Someone trying to win someone else's affection"
230/250 794s parse failures 0 last: Y060 fit 0.00 "NONE"
240/250 818s parse failures 0 last: Y070 fit 0.00 "NONE"
done: 245 judged this session in 832s; parse failures 0
exit 0
+27
View File
@@ -0,0 +1,27 @@
qwen2.5:3b-instruct: 250 distinct clusters, 5 already judged
10/250 11s parse failures 0 last: D15 fit 0.80 "Eviction and housing disputes"
20/250 24s parse failures 1 last: D25 fit 0.33 "seeking advice or assistance"
30/250 37s parse failures 1 last: D35 fit 0.73 "romantic interest or potential romance"
40/250 48s parse failures 1 last: T05 fit 0.87 "con or scam"
50/250 60s parse failures 1 last: T15 fit 0.40 "manipulation and hidden agenda"
60/250 71s parse failures 1 last: T25 fit 0.40 "flattery and attention seeking"
70/250 83s parse failures 1 last: T35 fit 0.20 "Demanding payment/repayment"
80/250 94s parse failures 1 last: R004 fit 0.47 "confrontation over authority or status"
90/250 108s parse failures 1 last: R014 fit 0.87 "drinking and socializing"
100/250 120s parse failures 1 last: X003 fit 1.00 "demand and confrontation"
110/250 131s parse failures 1 last: X013 fit 0.43 "seeking financial advice"
120/250 142s parse failures 1 last: X023 fit 0.47 "social gathering or dinner party"
130/250 153s parse failures 1 last: X033 fit 0.73 "negotiation and payment"
140/250 165s parse failures 1 last: X043 fit 0.93 "dinner party/hosting"
150/250 177s parse failures 1 last: X053 fit 0.67 "exploit and exploitation"
160/250 189s parse failures 1 last: X063 fit 0.67 "confrontation"
170/250 200s parse failures 1 last: X073 fit 0.60 "coercion and manipulation"
180/250 214s parse failures 1 last: Y010 fit 0.00 "NONE"
190/250 226s parse failures 1 last: Y020 fit 0.64 "seeking connections or companionship"
200/250 236s parse failures 1 last: Y030 fit 0.71 "dining and socializing"
210/250 248s parse failures 1 last: Y040 fit 1.00 "people seek social status or attention"
220/250 258s parse failures 1 last: Y050 fit 0.25 "courtship and seduction"
230/250 268s parse failures 1 last: Y060 fit 0.40 "confrontation over professional issue"
240/250 280s parse failures 1 last: Y070 fit 0.80 "people pursuing their livelihood or interests"
done: 245 judged this session in 286s; parse failures 1
exit 0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
{
"theta": 0.6,
"primary_G4": {
"accepted": 50,
"label1plus": 24,
"label2": 4,
"P1+": 0.48,
"recall1+": 0.3582089552238806
},
"primary_G2": {
"accepted": 49,
"label1plus": 36,
"label2": 5,
"P1+": 0.7346938775510204,
"recall1+": 0.5373134328358209
},
"small": {
"accepted": 13,
"label1plus": 3,
"label2": 1,
"P1+": 0.23076923076923078,
"recall1+": 0.3333333333333333
},
"criteria": [
false,
false,
false
]
}
@@ -0,0 +1,29 @@
{
"theta": 0.6,
"primary_G4": {
"accepted": 42,
"label1plus": 22,
"label2": 4,
"P1+": 0.5238095238095238,
"recall1+": 0.3283582089552239
},
"primary_G2": {
"accepted": 49,
"label1plus": 36,
"label2": 5,
"P1+": 0.7346938775510204,
"recall1+": 0.5373134328358209
},
"small": {
"accepted": 17,
"label1plus": 5,
"label2": 2,
"P1+": 0.29411764705882354,
"recall1+": 0.5555555555555556
},
"criteria": [
false,
false,
false
]
}
+94
View File
@@ -0,0 +1,94 @@
"""G4: ask the model whether a cluster's summaries share one social situation (SELECTION.md, "G4").
STP_OLLAMA=http://host:11434 python3 judge.py qwen2.5:3b-instruct --pilot # first 5 dev clusters
STP_OLLAMA=http://host:11434 python3 judge.py qwen2.5:3b-instruct # all labelled clusters
Writes judge-<model>.json, keyed by a hash of the member set, checkpointed after every call.
"""
import hashlib, json, pathlib, random, re, sys, time
import ollama
MODEL = sys.argv[1]
PILOT = '--pilot' in sys.argv
SHOW = 15
SYSTEM = """You read short summaries of scenes from different stories and decide whether they share one kind of social situation.
A social situation is a specific transaction between people: who wants what from whom, and what is at stake. Describe it in your own words.
Rules:
- Find the single situation that the largest number of summaries clearly show.
- It is normal for many summaries not to fit. Include a summary only if it clearly shows that situation.
- A shared place, mood, profession or word is not a situation.
- If no situation is clearly shown by at least three summaries, the situation is NONE.
Reply with JSON only: {"situation": "<at most 10 words, or NONE>", "fits": [<numbers of the summaries that clearly show it>]}"""
text = {x['chunk']: x['summary'] for x in
json.loads(pathlib.Path('summaries_clean.json').read_text(encoding='utf-8'))['summaries']}
def clusters():
"""(set name, cluster id, members) for every labelled cluster, development first."""
out = []
for name in ('dev', 'test'):
for cid, m in json.loads(pathlib.Path(f'candidates-{name}.json').read_text()).items():
out.append((name, cid, m))
for name, mapfile in (('recover', 'recover-map.json'), ('validate', 'validate-map.json'),
('validate3', 'validate3-map.json')):
for cid, e in json.loads(pathlib.Path(mapfile).read_text()).items():
out.append((name, cid, e['members']))
return out
def key(members):
return hashlib.sha1(','.join(map(str, sorted(members))).encode()).hexdigest()[:16]
def parse(raw, shown):
raw = re.sub(r'<think>.*?</think>', '', raw, flags=re.S).strip()
m = re.search(r'\{.*\}', raw, flags=re.S)
if not m: return None
try:
d = json.loads(m.group(0))
except Exception:
return None
situation = str(d.get('situation', '')).strip()
fits = d.get('fits', [])
if not isinstance(fits, list): return None
valid = sorted({int(f) for f in fits if isinstance(f, (int, float, str)) and str(f).strip().isdigit()
and 1 <= int(f) <= shown})
none = not situation or situation.upper().startswith('NONE')
return {'situation': situation, 'fits': valid, 'fit': 0.0 if none else len(valid) / shown}
out_path = pathlib.Path(f"judge-{MODEL.replace(':', '_').replace('/', '_')}.json")
cache = json.loads(out_path.read_text()) if out_path.exists() else {}
todo, seen = [], set()
for name, cid, members in clusters():
k = key(members)
if k in seen: continue
seen.add(k)
todo.append((name, cid, members, k))
if PILOT: todo = todo[:5]
print(f'{MODEL}: {len(todo)} distinct clusters, {sum(k in cache for *_, k in todo)} already judged', flush=True)
t0, done, failures = time.time(), 0, 0
for name, cid, members, k in todo:
if k in cache: continue
sample = sorted(members)
rnd = random.Random(int(k, 16))
if len(sample) > SHOW: sample = rnd.sample(sample, SHOW)
rnd.shuffle(sample)
user = '\n'.join(f'{i + 1}. {text[c]}' for i, c in enumerate(sample))
if MODEL.startswith('qwen3'): user += '\n\n/no_think'
if MODEL.startswith('qwen3'):
raw, gen, pre = ollama.chat(MODEL, SYSTEM, user, num_ctx=2048, num_predict=300, fmt='json', think=False)
else:
raw, gen, pre = ollama.chat(MODEL, SYSTEM, user, num_ctx=2048, num_predict=200, fmt='json')
parsed = parse(raw, len(sample))
failures += parsed is None
cache[k] = {'set': name, 'id': cid, 'size': len(members), 'shown': len(sample), 'raw': raw,
'parsed': parsed is not None, **(parsed or {'situation': '', 'fits': [], 'fit': 0.0})}
out_path.write_text(json.dumps(cache, indent=1))
done += 1
if PILOT or done % 10 == 0:
print(f' {done}/{len(todo)} {time.time() - t0:.0f}s parse failures {failures} '
f'last: {cid} fit {cache[k]["fit"]:.2f} "{cache[k]["situation"][:60]}"', flush=True)
print(f'done: {done} judged this session in {time.time() - t0:.0f}s; parse failures {failures}')
+42
View File
@@ -0,0 +1,42 @@
{
"D01": {"label": 1, "name": "a heated disagreement over whose view is right"},
"D02": {"label": 0, "name": ""},
"D03": {"label": 1, "name": "money and marriage: wealthy suitors, inheritances"},
"D04": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"D05": {"label": 1, "name": "struggling artists and money"},
"D06": {"label": 1, "name": "writers and editors"},
"D07": {"label": 1, "name": "schemes, cons and theft over money"},
"D08": {"label": 1, "name": "a relative ill, missing or in trouble"},
"D09": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"D10": {"label": 0, "name": ""},
"D11": {"label": 1, "name": "working girls: jobs, wages and standing"},
"D12": {"label": 1, "name": "a woman at the centre of rival admirers"},
"D13": {"label": 2, "name": "a run-in with the police"},
"D14": {"label": 1, "name": "cabs, traffic and accidents in the street"},
"D15": {"label": 2, "name": "landlord or housekeeper against tenant: rooms and eviction"},
"D16": {"label": 2, "name": "someone coerces someone with a threat"},
"D17": {"label": 0, "name": ""},
"D18": {"label": 0, "name": ""},
"D19": {"label": 0, "name": ""},
"D20": {"label": 1, "name": "grief and loneliness at home"},
"D21": {"label": 1, "name": "a reunion or first meeting"},
"D22": {"label": 1, "name": "romantic pursuit and confrontation"},
"D23": {"label": 1, "name": "artist and patron or model"},
"D24": {"label": 0, "name": ""},
"D25": {"label": 1, "name": "what to do with money, and whose advice to take"},
"D26": {"label": 0, "name": ""},
"D27": {"label": 1, "name": "climbing socially by appearances"},
"D28": {"label": 0, "name": ""},
"D29": {"label": 1, "name": "searching for a missing person, demanding information"},
"D30": {"label": 2, "name": "a run-in with the police"},
"D31": {"label": 0, "name": ""},
"D32": {"label": 1, "name": "a meal given as patronage"},
"D33": {"label": 1, "name": "a secret past revealed in a romance"},
"D34": {"label": 0, "name": ""},
"D35": {"label": 0, "name": ""},
"D36": {"label": 0, "name": ""},
"D37": {"label": 1, "name": "a public quarrel with a shopkeeper, driver or official"},
"D38": {"label": 0, "name": ""},
"D39": {"label": 0, "name": ""},
"D40": {"label": 0, "name": ""}
}
@@ -0,0 +1,23 @@
{
"R001": {"label": 1, "name": "an inheritance or fortune and what it obliges"},
"R002": {"label": 0, "name": ""},
"R003": {"label": 1, "name": "someone coerces someone with a threat"},
"R004": {"label": 1, "name": "a run-in with the police"},
"R005": {"label": 0, "name": ""},
"R006": {"label": 1, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"R007": {"label": 1, "name": "schemes, cons and theft over money"},
"R008": {"label": 1, "name": "courtship"},
"R009": {"label": 1, "name": "coercion over money: threats, bribes, demands for payment"},
"R010": {"label": 1, "name": "courtship"},
"R011": {"label": 2, "name": "money and marriage: wealthy suitors, inheritances"},
"R012": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"R013": {"label": 0, "name": ""},
"R014": {"label": 1, "name": "drinking in the saloon"},
"R015": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"R016": {"label": 0, "name": ""},
"R017": {"label": 1, "name": "money owed and repayment"},
"R018": {"label": 1, "name": "trying to impress or win someone's favour"},
"R019": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"R020": {"label": 2, "name": "someone coerces someone with a threat"},
"R021": {"label": 0, "name": ""}
}
@@ -0,0 +1,43 @@
{
"T01": {"label": 0, "name": ""},
"T02": {"label": 0, "name": ""},
"T03": {"label": 1, "name": "money owed and repayment"},
"T04": {"label": 1, "name": "confrontations in the park and on the street"},
"T05": {"label": 1, "name": "schemes, cons and theft over money"},
"T06": {"label": 1, "name": "actresses and the stage"},
"T07": {"label": 1, "name": "courtship"},
"T08": {"label": 0, "name": ""},
"T09": {"label": 0, "name": ""},
"T10": {"label": 0, "name": ""},
"T11": {"label": 0, "name": ""},
"T12": {"label": 1, "name": "hosting in a restaurant or bar"},
"T13": {"label": 0, "name": ""},
"T14": {"label": 0, "name": ""},
"T15": {"label": 1, "name": "meals, drinks and who pays"},
"T16": {"label": 2, "name": "a newcomer seeks acceptance in a social circle"},
"T17": {"label": 2, "name": "a proposal or engagement, accepted or refused"},
"T18": {"label": 0, "name": ""},
"T19": {"label": 1, "name": "shop and service work and standing"},
"T20": {"label": 1, "name": "sizing up a new town"},
"T21": {"label": 0, "name": ""},
"T22": {"label": 0, "name": ""},
"T23": {"label": 0, "name": ""},
"T24": {"label": 0, "name": ""},
"T25": {"label": 1, "name": "trying to impress or win someone's favour"},
"T26": {"label": 0, "name": ""},
"T27": {"label": 1, "name": "cabs, traffic and accidents in the street"},
"T28": {"label": 0, "name": ""},
"T29": {"label": 0, "name": ""},
"T30": {"label": 2, "name": "a run-in with the police"},
"T31": {"label": 0, "name": ""},
"T32": {"label": 1, "name": "illness, loss and a missing relative"},
"T33": {"label": 1, "name": "a brawl or showdown"},
"T34": {"label": 1, "name": "drinking in the saloon"},
"T35": {"label": 2, "name": "coercion over money: threats, bribes, demands for payment"},
"T36": {"label": 0, "name": ""},
"T37": {"label": 1, "name": "a reunion or first meeting"},
"T38": {"label": 0, "name": ""},
"T39": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"T40": {"label": 0, "name": ""},
"T41": {"label": 1, "name": "struggling artists and money"}
}
@@ -0,0 +1,75 @@
{
"X001": {"label": 1, "name": "schemes, cons and theft over money"},
"X002": {"label": 1, "name": "struggling artists and money"},
"X003": {"label": 0, "name": ""},
"X004": {"label": 1, "name": "schemes, cons and theft over money"},
"X005": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"X006": {"label": 1, "name": "a meal given as patronage"},
"X007": {"label": 0, "name": ""},
"X008": {"label": 2, "name": "a reunion or first meeting"},
"X009": {"label": 1, "name": "a proposal or engagement, accepted or refused"},
"X010": {"label": 0, "name": ""},
"X011": {"label": 1, "name": "drinking in the saloon"},
"X012": {"label": 0, "name": ""},
"X013": {"label": 1, "name": "what to do with money, and whose advice to take"},
"X014": {"label": 0, "name": ""},
"X015": {"label": 0, "name": ""},
"X016": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"X017": {"label": 0, "name": ""},
"X018": {"label": 1, "name": "shop and service work and standing"},
"X019": {"label": 1, "name": "a public quarrel with a shopkeeper, driver or official"},
"X020": {"label": 0, "name": ""},
"X021": {"label": 1, "name": "courtship"},
"X022": {"label": 1, "name": "working girls: jobs, wages and standing"},
"X023": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"X024": {"label": 0, "name": ""},
"X025": {"label": 0, "name": ""},
"X026": {"label": 0, "name": ""},
"X027": {"label": 0, "name": ""},
"X028": {"label": 0, "name": ""},
"X029": {"label": 0, "name": ""},
"X030": {"label": 1, "name": "a brawl or showdown"},
"X031": {"label": 1, "name": "actresses and the stage"},
"X032": {"label": 0, "name": ""},
"X033": {"label": 0, "name": ""},
"X034": {"label": 1, "name": "struggling artists and money"},
"X035": {"label": 0, "name": ""},
"X036": {"label": 1, "name": "illness, loss and a missing relative"},
"X037": {"label": 0, "name": ""},
"X038": {"label": 0, "name": ""},
"X039": {"label": 1, "name": "working girls: jobs, wages and standing"},
"X040": {"label": 0, "name": ""},
"X041": {"label": 1, "name": "money and marriage: wealthy suitors, inheritances"},
"X042": {"label": 2, "name": "a public quarrel with a shopkeeper, driver or official"},
"X043": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"X044": {"label": 2, "name": "landlord or housekeeper against tenant: rooms and eviction"},
"X045": {"label": 1, "name": "struggling artists and money"},
"X046": {"label": 0, "name": ""},
"X047": {"label": 1, "name": "family pressures over work and marriage"},
"X048": {"label": 1, "name": "money owed and repayment"},
"X049": {"label": 0, "name": ""},
"X050": {"label": 1, "name": "schemes, cons and theft over money"},
"X051": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"X052": {"label": 1, "name": "schemes, cons and theft over money"},
"X053": {"label": 0, "name": ""},
"X054": {"label": 0, "name": ""},
"X055": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"X056": {"label": 1, "name": "trying to impress or win someone's favour"},
"X057": {"label": 1, "name": "schemes, cons and theft over money"},
"X058": {"label": 0, "name": ""},
"X059": {"label": 1, "name": "a proposal or engagement, accepted or refused"},
"X060": {"label": 0, "name": ""},
"X061": {"label": 0, "name": ""},
"X062": {"label": 0, "name": ""},
"X063": {"label": 0, "name": ""},
"X064": {"label": 1, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"X065": {"label": 1, "name": "a heated disagreement over whose view is right"},
"X066": {"label": 0, "name": ""},
"X067": {"label": 0, "name": ""},
"X068": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"X069": {"label": 1, "name": "trying to impress or win someone's favour"},
"X070": {"label": 1, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"X071": {"label": 0, "name": ""},
"X072": {"label": 0, "name": ""},
"X073": {"label": 0, "name": ""}
}
@@ -0,0 +1,77 @@
{
"Y001": {"label": 0, "name": ""},
"Y002": {"label": 0, "name": ""},
"Y003": {"label": 1, "name": "struggling artists and money"},
"Y004": {"label": 1, "name": "landlord or housekeeper against tenant: rooms and eviction"},
"Y005": {"label": 0, "name": ""},
"Y006": {"label": 1, "name": "schemes, cons and theft over money"},
"Y007": {"label": 0, "name": ""},
"Y008": {"label": 0, "name": ""},
"Y009": {"label": 0, "name": ""},
"Y010": {"label": 1, "name": "struggling artists and money"},
"Y011": {"label": 0, "name": ""},
"Y012": {"label": 0, "name": ""},
"Y013": {"label": 1, "name": "struggling artists and money"},
"Y014": {"label": 0, "name": ""},
"Y015": {"label": 0, "name": ""},
"Y016": {"label": 1, "name": "a proposal or engagement, accepted or refused"},
"Y017": {"label": 1, "name": "an invitation to dine"},
"Y018": {"label": 0, "name": ""},
"Y019": {"label": 0, "name": ""},
"Y020": {"label": 0, "name": ""},
"Y021": {"label": 1, "name": "schemes, cons and theft over money"},
"Y022": {"label": 1, "name": "schemes, cons and theft over money"},
"Y023": {"label": 1, "name": "working girls: jobs, wages and standing"},
"Y024": {"label": 2, "name": "someone coerces someone with a threat"},
"Y025": {"label": 0, "name": ""},
"Y026": {"label": 0, "name": ""},
"Y027": {"label": 0, "name": ""},
"Y028": {"label": 1, "name": "actresses and the stage"},
"Y029": {"label": 0, "name": ""},
"Y030": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"Y031": {"label": 0, "name": ""},
"Y032": {"label": 1, "name": "a run-in with the police"},
"Y033": {"label": 0, "name": ""},
"Y034": {"label": 0, "name": ""},
"Y035": {"label": 0, "name": ""},
"Y036": {"label": 0, "name": ""},
"Y037": {"label": 0, "name": ""},
"Y038": {"label": 1, "name": "someone coerces someone with a threat"},
"Y039": {"label": 0, "name": ""},
"Y040": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"Y041": {"label": 0, "name": ""},
"Y042": {"label": 0, "name": ""},
"Y043": {"label": 1, "name": "a run-in with the police"},
"Y044": {"label": 0, "name": ""},
"Y045": {"label": 0, "name": ""},
"Y046": {"label": 0, "name": ""},
"Y047": {"label": 2, "name": "working girls: jobs, wages and standing"},
"Y048": {"label": 0, "name": ""},
"Y049": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"Y050": {"label": 0, "name": ""},
"Y051": {"label": 0, "name": ""},
"Y052": {"label": 2, "name": "an invitation to dine"},
"Y053": {"label": 1, "name": "a brawl or showdown"},
"Y054": {"label": 0, "name": ""},
"Y055": {"label": 0, "name": ""},
"Y056": {"label": 0, "name": ""},
"Y057": {"label": 0, "name": ""},
"Y058": {"label": 0, "name": ""},
"Y059": {"label": 0, "name": ""},
"Y060": {"label": 0, "name": ""},
"Y061": {"label": 0, "name": ""},
"Y062": {"label": 1, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"Y063": {"label": 0, "name": ""},
"Y064": {"label": 1, "name": "a proposal or engagement, accepted or refused"},
"Y065": {"label": 0, "name": ""},
"Y066": {"label": 0, "name": ""},
"Y067": {"label": 1, "name": "illness, loss and a missing relative"},
"Y068": {"label": 0, "name": ""},
"Y069": {"label": 1, "name": "trying to impress or win someone's favour"},
"Y070": {"label": 0, "name": ""},
"Y071": {"label": 1, "name": "schemes, cons and theft over money"},
"Y072": {"label": 0, "name": ""},
"Y073": {"label": 1, "name": "writers and editors"},
"Y074": {"label": 1, "name": "working girls: jobs, wages and standing"},
"Y075": {"label": 0, "name": ""}
}
+46
View File
@@ -0,0 +1,46 @@
"""Dump candidate clusters to blind label sheets (SELECTION.md, protocol steps 1-3).
python3 make_sheets.py
Writes, for development (seed 11) and test (seed 12):
candidates-<set>.json cluster id -> member chunk indices (what signals are computed on)
sheet-<set>.txt per cluster, member summaries only, shuffled; no titles, no scores
labels-<set>.json an empty template to fill in: {id: {"label": null, "name": ""}}
Cluster ids are assigned in a shuffled order so position carries no information.
"""
import json, pathlib, random, sys
K = 60
SETS = {'dev': 11, 'test': 12}
sys.argv = ['measure.py', 'summary_embeddings.json']
exec(pathlib.Path('measure.py').read_text(encoding='utf-8').split("print(f'{path.name}")[0])
summaries = json.loads(pathlib.Path('summaries_clean.json').read_text(encoding='utf-8'))['summaries']
text = {x['chunk']: x['summary'] for x in summaries}
for name, seed in SETS.items():
cands = []
for c in kmeans(K, seed):
size, nst, dom, _ = describe(c)
if size >= MIN_SIZE and nst >= MIN_STORIES and dom <= MAX_DOMINANT:
cands.append(sorted(c))
rnd = random.Random(seed * 1000 + 7)
rnd.shuffle(cands)
prefix = name[0].upper()
ids = {f'{prefix}{i + 1:02d}': c for i, c in enumerate(cands)}
pathlib.Path(f'candidates-{name}.json').write_text(json.dumps(ids, indent=1))
lines = []
for cid, members in ids.items():
shown = members[:]
rnd.shuffle(shown)
lines.append(f'=== {cid}')
lines.extend(f' - {text[i]}' for i in shown)
lines.append('')
pathlib.Path(f'sheet-{name}.txt').write_text('\n'.join(lines), encoding='utf-8')
labels = pathlib.Path(f'labels-{name}.json')
if not labels.exists():
labels.write_text(json.dumps({cid: {'label': None, 'name': ''} for cid in ids}, indent=1))
print(f'{name}: seed {seed}, {len(ids)} candidate clusters, {sum(map(len, ids.values()))} scenes')
@@ -0,0 +1,11 @@
embeddings.json: 838 chunks from 94 stories, seeds (11, 12, 13)
k sized>=5 median dom recurring coverage tight rec tight cov
----------------------------------------------------------------------
25 25 0.25 21 93% 9 29%
40 39 0.36 21 71% 5 9%
60 55 0.57 20 55% 3 2%
100 78 0.67 16 30% 0 0%
recurring = size>=5, stories>=4, dominant share<=40%; tight = coherence at or above this file's median cluster. Judge at k>=60. Wrote embeddings.measure.json
exit 0
@@ -0,0 +1,11 @@
summary_embeddings.json: 838 chunks from 94 stories, seeds (11, 12, 13)
k sized>=5 median dom recurring coverage tight rec tight cov
----------------------------------------------------------------------
25 25 0.14 23 97% 11 40%
40 36 0.17 32 95% 14 36%
60 51 0.22 41 87% 18 26%
100 70 0.28 50 73% 20 19%
recurring = size>=5, stories>=4, dominant share<=40%; tight = coherence at or above this file's median cluster. Judge at k>=60. Wrote summary_embeddings.measure.json
exit 0
+103
View File
@@ -0,0 +1,103 @@
"""Do the clusters in an embedding file capture recurring SITUATIONS?
python3 measure.py embeddings.json # prose embeddings (the 2026-09-10 baseline)
python3 measure.py summary_embeddings.json # summarise-then-embed (the fix under test)
The 2026-09-10 probe counted distinct stories per cluster and was fooled: a
cluster reporting 5 stories was routinely 60-79% ONE story plus stragglers.
So this reports concentration, not just spread.
dominant share = largest single-story count / cluster size
recurring = size >= MIN_SIZE, >= MIN_STORIES distinct stories,
and dominant share <= MAX_DOMINANT
Pass mark: see DESIGN.md, "Assumptions under test". Judged at k = 60 and
k = 100 only. Results are the median over SEEDS, so one lucky (or unlucky)
initialisation cannot decide the test -- the 2026-09-10 "2% coverage" was
seed 11 alone; seeds 12 and 13 give 8-10%.
Pure Python -- no numpy on this machine. Only chunk indices that have an
embedding are used, so a partial (pilot) file is fine.
"""
import json, math, pathlib, random, statistics, sys
KS = (25, 40, 60, 100)
SEEDS = (11, 12, 13)
MIN_SIZE, MIN_STORIES, MAX_DOMINANT = 5, 4, 0.40
path = pathlib.Path(sys.argv[1] if len(sys.argv) > 1 else 'embeddings.json')
chunks = json.loads(pathlib.Path('chunks.json').read_text(encoding='utf-8'))
raw = json.loads(path.read_text(encoding='utf-8'))
vecs = raw['vectors'] if isinstance(raw, dict) else raw
n = min(len(chunks), len(vecs))
def norm(v):
m = math.sqrt(sum(x * x for x in v)) or 1.0
return [x / m for x in v]
V = [norm(v) for v in vecs[:n]]
dim = len(V[0])
story = [chunks[i]['story'] for i in range(n)]
def dot(a, b):
s = 0.0
for x, y in zip(a, b): s += x * y
return s
def kmeans(K, seed, iters=15):
rnd = random.Random(seed)
cent = [V[i] for i in rnd.sample(range(n), K)]
assign = [-1] * n
for _ in range(iters):
moved = 0
for i, v in enumerate(V):
best, bs = 0, -2.0
for k, c in enumerate(cent):
s = dot(v, c)
if s > bs: bs, best = s, k
if assign[i] != best: assign[i] = best; moved += 1
if moved == 0: break
groups = {}
for i, k in enumerate(assign): groups.setdefault(k, []).append(i)
for k, mem in groups.items():
cent[k] = norm([sum(V[i][d] for i in mem) / len(mem) for d in range(dim)])
groups = {}
for i, k in enumerate(assign): groups.setdefault(k, []).append(i)
return list(groups.values())
def describe(cluster):
counts = {}
for i in cluster: counts[story[i]] = counts.get(story[i], 0) + 1
cen = norm([sum(V[i][d] for i in cluster) / len(cluster) for d in range(dim)])
coh = sum(dot(V[i], cen) for i in cluster) / len(cluster)
return len(cluster), len(counts), max(counts.values()) / len(cluster), coh
# "Tight" is relative to the file's own median cluster coherence. An absolute
# cutoff (the 2026-09-10 probe used 0.83) does not transfer between embedding
# files: one-sentence summaries and 300-word scenes sit at different cosines.
# Without it, loose clusters held together by prose register count as recurring.
print(f'{path.name}: {n} chunks from {len(set(story))} stories, seeds {SEEDS}\n')
print(f'{"k":>4} {"sized>=%d" % MIN_SIZE:>9} {"median dom":>11} {"recurring":>10} {"coverage":>9} {"tight rec":>10} {"tight cov":>10}')
print('-' * 70)
report = {'file': path.name, 'chunks': n, 'rows': []}
for K in KS:
if K * 2 > n: continue
per_seed = []
for seed in SEEDS:
rows = [describe(c) for c in kmeans(K, seed)]
sized = [r for r in rows if r[0] >= MIN_SIZE]
rec = [r for r in sized if r[1] >= MIN_STORIES and r[2] <= MAX_DOMINANT]
cut = statistics.median(r[3] for r in sized) if sized else 1.0
tight = [r for r in rec if r[3] >= cut]
per_seed.append((len(sized),
statistics.median(r[2] for r in sized) if sized else 1.0,
len(rec), sum(r[0] for r in rec) / n,
len(tight), sum(r[0] for r in tight) / n))
med = [statistics.median(s[j] for s in per_seed) for j in range(6)]
print(f'{K:>4} {med[0]:>9.0f} {med[1]:>11.2f} {med[2]:>10.0f} {med[3]:>8.0%} {med[4]:>10.0f} {med[5]:>9.0%}')
report['rows'].append({'k': K, 'sized': med[0], 'median_dominant': med[1],
'recurring': med[2], 'coverage': med[3],
'tight_recurring': med[4], 'tight_coverage': med[5]})
out = path.with_name(path.stem + '.measure.json')
out.write_text(json.dumps(report, indent=1))
print(f'\nrecurring = size>={MIN_SIZE}, stories>={MIN_STORIES}, dominant share<={MAX_DOMINANT:.0%}; '
f'tight = coherence at or above this file\'s median cluster. Judge at k>=60. Wrote {out.name}')
+38
View File
@@ -0,0 +1,38 @@
"""Near-duplicate situations among accepted clusters (SELECTION.md protocol step 6).
python3 merge_dupes.py dev # list every accepted pair's centroid cosine, with label names
python3 merge_dupes.py test 0.93 # merge pairs at or above a threshold chosen on dev
Centroids are the mean unit summary vector of each cluster. On dev the threshold is chosen by
reading: the lowest cosine that still separates pairs whose names say "same situation" from pairs
that do not. On test it is applied as given, and each merge is reported with both names so it can
be checked.
"""
import json, pathlib, sys
set_name = sys.argv[1]
threshold = float(sys.argv[2]) if len(sys.argv) > 2 else None
sys.argv = ['measure.py', 'summary_embeddings.json']
exec(pathlib.Path('measure.py').read_text(encoding='utf-8').split("print(f'{path.name}")[0])
sys.argv = ['select_rule.py']
exec(pathlib.Path('select_rule.py').read_text(encoding='utf-8').split("mode = sys.argv")[0])
candidates = json.loads(pathlib.Path(f'candidates-{set_name}.json').read_text())
frozen = json.loads(pathlib.Path('rule-frozen.json').read_text())
terms = [tuple(t) for t in frozen['terms']]
rows = {r['id']: r for r in load(set_name)}
accepted = [cid for cid, r in rows.items() if all(passes(r, t) for t in terms)]
cent = {cid: norm([sum(V[i][d] for i in candidates[cid]) / len(candidates[cid]) for d in range(dim)])
for cid in accepted}
pairs = sorted(((dot(cent[a], cent[b]), a, b) for x, a in enumerate(accepted) for b in accepted[x + 1:]),
reverse=True)
print(f'{set_name}: {len(accepted)} accepted clusters, {len(pairs)} pairs\n')
for cos, a, b in pairs[:25]:
mark = ' MERGE' if threshold is not None and cos >= threshold else ''
print(f"{cos:.4f} {a}({rows[a]['label']}) {rows[a]['name'] or '-'}\n {b}({rows[b]['label']}) {rows[b]['name'] or '-'}{mark}")
if threshold is not None:
merged = [(a, b) for cos, a, b in pairs if cos >= threshold]
print(f'\nthreshold {threshold}: {len(merged)} merges')
+49
View File
@@ -0,0 +1,49 @@
"""The one place that talks to an inference host.
The host is shared with other development work, so this is deliberately
gentle: one request at a time, a fixed pause between requests, and a short
keep_alive so the model is not left occupying the GPU after a run.
Configuration comes from the environment, never from a file in this tree:
STP_OLLAMA base URL of an Ollama server, e.g. http://inference.lan:11434
STP_PAUSE seconds between requests (default 0.5)
"""
import json, os, sys, time, urllib.request
BASE = os.environ.get('STP_OLLAMA', '').rstrip('/')
PAUSE = float(os.environ.get('STP_PAUSE', '0.5'))
KEEP_ALIVE = '2m'
if not BASE:
sys.exit('STP_OLLAMA is not set -- refusing to guess an inference host')
def post(route, body, timeout=300):
req = urllib.request.Request(BASE + route, data=json.dumps(body).encode(),
headers={'Content-Type': 'application/json'})
for attempt in range(4):
try:
with urllib.request.urlopen(req, timeout=timeout) as r:
result = json.load(r)
time.sleep(PAUSE)
return result
except Exception as e:
if attempt == 3: raise
print(f' retry {attempt + 1}: {e}', flush=True)
time.sleep(5 * (attempt + 1))
def embed(model, texts):
return post('/api/embed', {'model': model, 'input': texts, 'keep_alive': KEEP_ALIVE})['embeddings']
def chat(model, system, user, num_ctx=2048, num_predict=80, fmt=None, think=None):
# num_ctx is pinned small on purpose: the 2026-09-10 hang was a 16k-context
# variant prefilling on CPU. A scene is ~450 tokens with the prompt.
body = {'model': model, 'stream': False, 'keep_alive': KEEP_ALIVE,
'messages': [{'role': 'system', 'content': system},
{'role': 'user', 'content': user}],
'options': {'num_ctx': num_ctx, 'num_predict': num_predict, 'temperature': 0}}
if fmt: body['format'] = fmt
# Thinking models (qwen3) otherwise spend the token budget in a separate thinking
# channel and return empty content.
if think is not None: body['think'] = think
d = post('/api/chat', body)
return d['message']['content'].strip(), d.get('eval_duration', 0), d.get('prompt_eval_duration', 0)
+731
View File
@@ -0,0 +1,731 @@
{
"R001": {
"members": [
57,
58,
61,
63,
75,
279,
281,
326,
358,
359,
364,
435,
640
],
"methods": [
"B",
"M1"
]
},
"R002": {
"members": [
5,
78,
107,
128,
130,
131,
153,
178,
247,
277,
334,
335,
342,
344,
345,
420,
443,
445,
446,
447,
449,
515,
519,
555,
561,
613,
775,
818,
824,
832
],
"methods": [
"M3"
]
},
"R003": {
"members": [
22,
41,
76,
80,
98,
128,
130,
131,
161,
163,
200,
261,
340,
357,
363,
397,
407,
448,
478,
498,
519,
599,
662,
663,
693,
701,
708,
709,
769,
788
],
"methods": [
"M3"
]
},
"R004": {
"members": [
3,
101,
130,
131,
243,
272,
407,
408,
409,
411,
444,
476,
510,
513,
515,
597,
599,
600,
662,
693,
694,
695,
696,
698,
701,
762,
771,
830
],
"methods": [
"M3"
]
},
"R005": {
"members": [
52,
126,
144,
160,
166,
169,
208,
257,
258,
303,
356,
431,
480,
517,
573,
588,
606,
608,
648,
651,
658,
691,
706,
730,
750,
751,
805,
807,
809,
816
],
"methods": [
"M3"
]
},
"R006": {
"members": [
38,
41,
66,
69,
121,
127,
131,
149,
163,
187,
198,
227,
283,
293,
322,
391,
475,
483,
488,
526,
536,
550,
590,
614,
721,
756,
757,
758,
759,
760,
761,
762,
763,
764,
786,
804
],
"methods": [
"B",
"M1",
"M3"
]
},
"R007": {
"members": [
39,
62,
93,
125,
148,
172,
175,
178,
199,
201,
215,
222,
224,
251,
254,
264,
265,
267,
306,
323,
328,
352,
361,
367,
479,
490,
500,
511,
521,
533,
534,
543,
589,
662,
680,
799,
803,
823
],
"methods": [
"B",
"M1",
"M3"
]
},
"R008": {
"members": [
17,
19,
20,
29,
45,
46,
49,
60,
108,
159,
170,
178,
185,
221,
278,
333,
342,
343,
369,
372,
522,
538,
579,
586,
587,
611,
635,
639,
692,
799
],
"methods": [
"M3"
]
},
"R009": {
"members": [
42,
57,
58,
59,
61,
63,
75,
76,
175,
265,
267,
275,
279,
281,
326,
352,
358,
359,
364,
435,
479,
500,
519,
540,
543,
640,
662,
680,
739,
799
],
"methods": [
"M3"
]
},
"R010": {
"members": [
18,
25,
26,
55,
77,
107,
126,
167,
186,
285,
289,
392,
403,
419,
421,
424,
427,
482,
492,
493,
506,
532,
569,
596,
604,
605,
606,
608,
627,
651,
690,
691,
704,
705,
755,
801,
802
],
"methods": [
"M3"
]
},
"R011": {
"members": [
20,
65,
125,
135,
198,
221,
381,
459,
477,
488,
639,
642,
692,
799
],
"methods": [
"M2"
]
},
"R012": {
"members": [
27,
47,
144,
168,
216,
308,
311,
355,
416,
422,
559,
619,
648,
649,
660,
665,
675,
774,
805,
808,
809,
836
],
"methods": [
"B",
"M1"
]
},
"R013": {
"members": [
13,
22,
41,
95,
106,
115,
117,
119,
128,
129,
130,
131,
163,
227,
231,
271,
336,
451,
464,
519,
599,
662,
663,
693,
701,
710,
740,
762,
765,
790
],
"methods": [
"M3"
]
},
"R014": {
"members": [
29,
150,
229,
252,
272,
275,
276,
309,
324,
349,
355,
398,
399,
450,
504,
631,
656,
657,
659,
661,
662,
693,
695,
728,
731,
749,
754,
768,
772,
825
],
"methods": [
"M3"
]
},
"R015": {
"members": [
41,
72,
106,
131,
148,
149,
205,
293,
301,
302,
304,
305,
411,
590,
663
],
"methods": [
"M2"
]
},
"R016": {
"members": [
7,
8,
17,
21,
124,
171,
282,
414,
547,
554,
570,
602,
638,
641,
727,
746,
834
],
"methods": [
"M3"
]
},
"R017": {
"members": [
10,
12,
59,
62,
150,
175,
244,
245,
252,
275,
276,
312,
324,
352,
355,
374,
378,
415,
422,
479,
520,
543,
662,
680,
684,
717,
739,
825,
826,
833
],
"methods": [
"M3"
]
},
"R018": {
"members": [
13,
16,
20,
28,
29,
44,
65,
67,
87,
91,
92,
94,
135,
136,
141,
146,
169,
170,
250,
266,
332,
366,
368,
377,
494,
495,
509,
573,
607,
628,
629,
630,
636,
692,
748,
785,
796,
817,
819
],
"methods": [
"M3"
]
},
"R019": {
"members": [
27,
47,
144,
159,
168,
216,
275,
308,
311,
355,
416,
422,
520,
559,
605,
606,
608,
619,
648,
649,
651,
660,
665,
675,
691,
774,
805,
808,
809,
836
],
"methods": [
"M3"
]
},
"R020": {
"members": [
12,
38,
62,
121,
306,
324,
354,
375,
410,
448,
519,
615,
662,
680,
703,
739,
823
],
"methods": [
"M2"
]
},
"R021": {
"members": [
20,
21,
22,
29,
53,
54,
60,
173,
174,
175,
178,
230,
367,
406,
479,
489,
491,
540,
608,
634,
639,
643,
644,
662,
692,
710,
734,
739,
792,
799
],
"methods": [
"M3"
]
}
}
@@ -0,0 +1,42 @@
{
"B": {
"accepted": 4,
"precision1plus": 1.0,
"precision2": 0.0,
"label2": 0,
"distinct_situations": 4,
"repeated_names": 0,
"coverage": 0.13007159904534607,
"scenes_in_several": 0
},
"M1": {
"accepted": 4,
"precision1plus": 1.0,
"precision2": 0.0,
"label2": 0,
"distinct_situations": 4,
"repeated_names": 0,
"coverage": 0.13007159904534607,
"scenes_in_several": 0
},
"M2": {
"accepted": 3,
"precision1plus": 1.0,
"precision2": 1.0,
"label2": 3,
"distinct_situations": 3,
"repeated_names": 0,
"coverage": 0.05489260143198091,
"scenes_in_several": 0
},
"M3": {
"accepted": 16,
"precision1plus": 0.6875,
"precision2": 0.0,
"label2": 0,
"distinct_situations": 10,
"repeated_names": 1,
"coverage": 0.45465393794749404,
"scenes_in_several": 68
}
}
+10
View File
@@ -0,0 +1,10 @@
seed 13: 42 candidates; B accepts 4
M1: pool 729, k=36; accepts 4 (0 new)
M2: accepts 3
M3: accepts 16 (12 recovered by pruning); scenes in >1 cluster: 68
blind sheet: 21 distinct clusters, 576 lines
real 0m54.699s
user 0m39.193s
sys 0m14.866s
exit 0
+170
View File
@@ -0,0 +1,170 @@
"""Recall recovery: baseline gate and three methods on the seed-13 partition (SELECTION.md).
python3 recover.py
Writes:
recover-map.json sheet id -> member chunks and which methods produced it (do not read before labelling)
sheet-recover.txt blind sheet: member summaries only, shuffled
labels-recover.json empty label template (only if absent)
Prints counts per method only.
"""
import collections, json, math, pathlib, random, re, sys
SEED, K = 13, 60
MIN_GATE_SIZE, GROW_CAP = 13, 30
sys.argv = ['measure.py', 'summary_embeddings.json']
exec(pathlib.Path('measure.py').read_text(encoding='utf-8').split("print(f'{path.name}")[0])
# defined: chunks, V, n, dim, story, dot, norm, kmeans (on V), describe, MIN_SIZE, MIN_STORIES, MAX_DOMINANT
frozen = json.loads(pathlib.Path('rule-frozen.json').read_text())
CUT = {s: t for s, _, t in frozen['terms']}
S1_CUT, S6_CUT = CUT['S1'], CUT['S6']
summaries = json.loads(pathlib.Path('summaries_clean.json').read_text(encoding='utf-8'))['summaries']
text = {x['chunk']: x['summary'] for x in summaries}
# Identical to signals.py.
STOP = set("""a an the and or but of to in on at for with by from as into over under about after before
while during than then that this these those it its his her hers him he she they them their theirs we our
you your i me my is are was were be been being has have had do does did not no nor so such who whom whose
which what when where why how all any each both either neither one two some other others another more most
less least very just only also even yet still now up down out off away back again once own same too can
could will would shall should may might must upon despite toward towards between among amid amidst
someone someone's someone’s""".split())
docs = [set(re.findall(r"[a-z][a-z'’]+", text[i].lower())) - STOP for i in range(n)]
df = collections.Counter(w for d in docs for w in d)
def s1(m):
tot, cnt = 0.0, 0
for x in range(len(m)):
for y in range(x + 1, len(m)):
if story[m[x]] != story[m[y]]:
tot += dot(V[m[x]], V[m[y]]); cnt += 1
return tot / cnt if cnt else 0.0
def s6(m):
size = len(m)
cw = collections.Counter(w for i in m for w in docs[i])
best = None
for w, c in cw.items():
if c < 2: continue
score = math.log((c + .5) / (size - c + .5)) - math.log((df[w] + .5) / (n - df[w] + .5))
if best is None or score > best[0]: best = (score, c)
return best[1] / size if best else 0.0
def eligible(m):
size, nst, dom, _ = describe(m)
return size >= MIN_SIZE and nst >= MIN_STORIES and dom <= MAX_DOMINANT
def passes(m):
return eligible(m) and s1(m) >= S1_CUT and s6(m) <= S6_CUT
# Guard against drift from signals.py: recompute S1/S6 for the dev candidates.
dev_sig = json.loads(pathlib.Path('signals-dev.json').read_text())
dev_cand = json.loads(pathlib.Path('candidates-dev.json').read_text())
for cid, m in dev_cand.items():
assert abs(s1(m) - dev_sig[cid]['S1']) < 1e-3 and abs(s6(m) - dev_sig[cid]['S6']) < 1e-3, cid
def kmeans_on(vecs, k, seed, iters=15):
"""Same algorithm as measure.kmeans, over arbitrary unit vectors; returns index groups."""
m, d = len(vecs), len(vecs[0])
rnd = random.Random(seed)
cent = [vecs[i] for i in rnd.sample(range(m), k)]
assign = [-1] * m
for _ in range(iters):
moved = 0
for i, v in enumerate(vecs):
best, bs = 0, -2.0
for j, c in enumerate(cent):
s = sum(a * b for a, b in zip(v, c))
if s > bs: bs, best = s, j
if assign[i] != best: assign[i] = best; moved += 1
if moved == 0: break
groups = collections.defaultdict(list)
for i, j in enumerate(assign): groups[j].append(i)
for j, mem in groups.items():
cent[j] = norm([sum(vecs[i][x] for i in mem) / len(mem) for x in range(d)])
groups = collections.defaultdict(list)
for i, j in enumerate(assign): groups[j].append(i)
return list(groups.values())
def centroid(m):
return norm([sum(V[i][x] for i in m) / len(m) for x in range(dim)])
# Baseline
partition = [sorted(c) for c in kmeans(K, SEED)]
candidates = [c for c in partition if eligible(c)]
B = [c for c in candidates if passes(c)]
print(f'seed {SEED}: {len(candidates)} candidates; B accepts {len(B)}', flush=True)
# M1: re-cluster everything outside B's accepted clusters
in_B = {i for c in B for i in c}
pool = [i for i in range(n) if i not in in_B]
k1 = max(2, round(len(pool) / 20))
M1 = [list(c) for c in B]
for g in kmeans_on([V[i] for i in pool], k1, SEED):
m = sorted(pool[x] for x in g)
if passes(m): M1.append(m)
print(f'M1: pool {len(pool)}, k={k1}; accepts {len(M1)} ({len(M1) - len(B)} new)', flush=True)
# M2: consensus clustering over co-association rows
co = json.loads(pathlib.Path('coassoc.json').read_text())
rows = [norm([float(x) for x in co[i]]) for i in range(n)]
M2 = [sorted(g) for g in kmeans_on(rows, K, SEED) if passes(sorted(g))]
print(f'M2: accepts {len(M2)}', flush=True)
# M3: prune failing candidates to a passing core, then grow every passing cluster
def prune(m):
m = list(m)
while not passes(m):
if len(m) <= MIN_GATE_SIZE: return None
def cross_mean(x):
others = [y for y in m if story[y] != story[x]]
return sum(dot(V[x], V[y]) for y in others) / len(others) if others else -1.0
m.remove(min(m, key=cross_mean))
return m
def grow(m):
m = list(m)
while len(m) < GROW_CAP:
cen = centroid(m)
members = set(m)
j = max((i for i in range(n) if i not in members), key=lambda i: dot(V[i], cen))
if not passes(m + [j]): break
m.append(j)
return sorted(m)
M3, pruned_ok = [], 0
for c in candidates:
core = c if passes(c) else prune(c)
if core is None: continue
if core is not c: pruned_ok += 1
M3.append(grow(core))
cover3 = collections.Counter(i for c in M3 for i in c)
print(f'M3: accepts {len(M3)} ({pruned_ok} recovered by pruning); scenes in >1 cluster: {sum(v > 1 for v in cover3.values())}', flush=True)
# Pool for blind labelling
methods = {'B': B, 'M1': M1, 'M2': M2, 'M3': M3}
union = {}
for name, clusters in methods.items():
for c in clusters:
union.setdefault(tuple(sorted(c)), []).append(name)
keys = list(union)
rnd = random.Random(1307)
rnd.shuffle(keys)
mapping = {f'R{i + 1:03d}': {'members': list(k), 'methods': union[k]} for i, k in enumerate(keys)}
pathlib.Path('recover-map.json').write_text(json.dumps(mapping, indent=1))
lines = []
for rid, entry in mapping.items():
shown = entry['members'][:]
rnd.shuffle(shown)
lines.append(f'=== {rid}')
lines.extend(f' - {text[i]}' for i in shown)
lines.append('')
pathlib.Path('sheet-recover.txt').write_text('\n'.join(lines), encoding='utf-8')
lab = pathlib.Path('labels-recover.json')
if not lab.exists():
lab.write_text(json.dumps({rid: {'label': None, 'name': ''} for rid in mapping}, indent=1))
print(f'blind sheet: {len(mapping)} distinct clusters, {sum(len(e["members"]) for e in mapping.values())} lines')
+199
View File
@@ -0,0 +1,199 @@
"""Build a human-review package: the clusters gate G2 accepts, plus the nearest misses.
python3 review.py # k = 60, seed 24 -> review/k60-s24/
python3 review.py --k 60 --seed 31 --borderline 8
Writes into the run directory:
REVIEW.md what was found, and exactly what the reviewer decides for each candidate
review.json the form to fill in: the only file the reviewer edits
candidates.json what was found, for apply_review.py to check the form against (do not edit)
Then: python3 apply_review.py review/k60-s24 -> situations.json
No inference: this uses the summaries and embeddings already on disk.
"""
import argparse, datetime, json, pathlib, sys
import gate2 as g
import review_format as rf
def gate_failures(sig, gate):
out = []
if gate.get('S1') is not None and sig['S1'] < gate['S1']:
out.append(f"cohesion S1 {sig['S1']:.3f}, needs {gate['S1']:.3f}")
if gate.get('Z1') is not None and sig['Z1'] < gate['Z1']:
out.append(f"cohesion against same-size random sets Z1 {sig['Z1']:.1f}, needs {gate['Z1']}")
if gate.get('MMIN') is not None and sig['MMIN'] < gate['MMIN']:
out.append(f"weakest scene MMIN {sig['MMIN']:.3f}, needs {gate['MMIN']:.3f}")
if gate.get('W') is not None and sig['W'] >= gate['W']:
out.append(f"the word \"{sig['W_word']}\" is in {sig['W']:.0%} of summaries, limit {gate['W']:.0%}")
return out
def shortfall(sig, gate):
"""How far a rejected candidate is from passing; smaller is closer."""
s = 0.0
if gate.get('S1') is not None: s += max(0.0, gate['S1'] - sig['S1']) / 0.01
if gate.get('Z1') is not None: s += max(0.0, gate['Z1'] - sig['Z1'])
if gate.get('W') is not None and sig['W'] >= gate['W']: s += 10 * (sig['W'] - gate['W'] + 0.01)
return s
def cell(text):
return text.replace('|', '\\|').replace('\n', ' ')
def main():
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument('--k', type=int, default=60, help='number of k-means clusters (default 60)')
ap.add_argument('--seed', type=int, default=24, help='k-means seed (default 24)')
ap.add_argument('--borderline', type=int, default=8, help='near misses to offer for optional review (default 8)')
ap.add_argument('--out', help='run directory (default review/k<K>-s<SEED>)')
ap.add_argument('--force', action='store_true', help='overwrite an existing review.json')
args = ap.parse_args()
run_id = f'k{args.k}-s{args.seed}'
out = pathlib.Path(args.out or f'review/{run_id}')
if (out / 'review.json').exists() and not args.force:
sys.exit(f'{out / "review.json"} already exists and may hold a reviewer\'s work. '
f'Use --force to overwrite it, or --out for a different directory.')
gate = json.loads(pathlib.Path('gate2-frozen.json').read_text())
candidates_found = [c for c in g.kmeans(args.k, args.seed) if g.eligible(c)]
scored = [(c, g.signals(c)) for c in candidates_found]
accepted = sorted([cs for cs in scored if g.g2_passes(cs[1], gate)], key=lambda cs: -cs[1]['S1'])
rejected = sorted([cs for cs in scored if not g.g2_passes(cs[1], gate)], key=lambda cs: shortfall(cs[1], gate))
borderline = rejected[:args.borderline]
listed = [(f'C{i + 1:02d}', 'accepted', c, s) for i, (c, s) in enumerate(accepted)]
listed += [(f'B{i + 1:02d}', 'borderline', c, s) for i, (c, s) in enumerate(borderline)]
centroids = {cid: g.centroid(c) for cid, _, c, _ in listed}
candidates = {}
for cid, kind, members, sig in listed:
others = [(g.dot(centroids[cid], centroids[o]), o) for o in centroids if o != cid]
cos, similar = max(others) if others else (0.0, None)
candidates[cid] = {
'kind': kind,
'stats': {'scenes': sig['size'], 'stories': sig['stories'], 'largest_story_share': round(sig['dominant'], 3),
'S1': round(sig['S1'], 4), 'Z1': round(sig['Z1'], 2), 'W': round(sig['W'], 3), 'W_word': sig['W_word']},
'gate_failures': gate_failures(sig, gate),
'most_similar': {'id': similar, 'cosine': round(cos, 3)},
'members': [{'member': rf.member_id(cid, n + 1), 'chunk': chunk, 'story': g.chunks[chunk]['story'],
'title': g.chunks[chunk]['title'], 'summary': g.text[chunk]}
for n, chunk in enumerate(sorted(members))],
}
document = {
'schema_version': rf.SCHEMA_VERSION,
'run': {'id': run_id, 'k': args.k, 'seed': args.seed,
'created': datetime.datetime.now().astimezone().isoformat(timespec='seconds'),
'gate': {'name': 'G2', **gate}, 'scenes': g.n, 'stories': len(set(g.story)),
'candidates_found': len(candidates_found), 'accepted': len(accepted), 'borderline': len(borderline)},
'candidates': candidates,
}
out.mkdir(parents=True, exist_ok=True)
(out / 'candidates.json').write_text(json.dumps(document, indent=1, ensure_ascii=False), encoding='utf-8')
(out / 'review.json').write_text(json.dumps(rf.blank_form(document), indent=1, ensure_ascii=False), encoding='utf-8')
(out / 'REVIEW.md').write_text(render(document, out), encoding='utf-8')
print(f'{run_id}: {len(candidates_found)} candidates, G2 accepts {len(accepted)}, '
f'{len(borderline)} borderline offered')
print(f'wrote {out}/REVIEW.md, {out}/review.json, {out}/candidates.json')
print(f'next: fill in {out}/review.json, then python3 apply_review.py {out}')
def render(doc, out):
run, cands = doc['run'], doc['candidates']
accepted = [cid for cid, c in cands.items() if c['kind'] == 'accepted']
borderline = [cid for cid, c in cands.items() if c['kind'] == 'borderline']
gate = run['gate']
expected_rejects = round(len(accepted) * 0.27)
L = []
L.append(f'# Situation review — run {run["id"]}\n')
L.append(f'Generated {run["created"]} by `probe/review.py` (k-means k = {run["k"]}, seed {run["seed"]}, gate G2).\n')
L.append('## What the program found\n')
L.append(f'- {run["scenes"]} scenes from {run["stories"]} stories, grouped into {run["k"]} clusters.')
L.append(f'- {run["candidates_found"]} clusters are large and varied enough to be candidates '
f'(at least {rf.MIN_MEMBERS} scenes from at least {rf.MIN_STORIES} stories, no story above {rf.MAX_DOMINANT:.0%}).')
L.append(f'- **{len(accepted)} candidates passed the automatic gate (G2): {", ".join(accepted) or "none"}.** '
f'On blind-labelled test data about 3 in 4 clusters that G2 accepts are real situations, '
f'so expect to reject roughly {expected_rejects} of these.')
L.append(f'- {len(borderline)} more candidates narrowly failed the gate: {", ".join(borderline) or "none"}. '
f'They are at the end. **Reviewing them is optional.**\n')
L.append('## What you are asked to do\n')
L.append(f'Budget about a minute per candidate. For each candidate below, read its scenes, then fill in '
f'its entry in **`review.json`** in this directory. That is the only file to edit; '
f'`candidates.json` is the program\'s record and must stay as it is.\n')
L.append('For each candidate, answer:\n')
L.append('1. **Do most of these scenes show one recurring situation** — one person wanting something '
'specific from another? → `decision`')
L.append('2. **If so, what is it?** One sentence: who wants what from whom. → `situation`, `actor`, `counterpart`, `stakes`')
L.append('3. **Which scenes do not show it?** → `exclude`')
L.append('4. **Is it the same situation as another candidate?** → `decision: "merge"` and `merge_into`\n')
L.append('| Field | What to put | When |')
L.append('| --- | --- | --- |')
L.append('| `decision` | `"accept"` — most scenes show one situation. `"reject"` — they do not. `"merge"` — the same situation as another candidate you accepted. Near misses (B…) start as `"skip"` and may be changed to `"accept"` or `"merge"`. | always |')
L.append('| `situation` | One sentence, at most 200 characters: who wants what from whom. | accept |')
L.append('| `actor` | The role that wants something — a role such as "a lodger", never a character\'s name. | accept |')
L.append('| `counterpart` | The role they want it from. | accept |')
L.append('| `stakes` | What is won or lost, in a few words. | asked for; not required |')
L.append('| `exclude` | Scene ids that do **not** show the situation, e.g. `["C04.02", "C04.11"]`. | when some do not fit |')
L.append('| `merge_into` | The id of the accepted candidate this one duplicates. | merge |')
L.append('| `notes` | Anything worth keeping. | optional |\n')
L.append('Guidance:\n')
L.append('- **A shared place, mood, job or word is not a situation.** "Scenes in restaurants" is a reject; '
'"a diner wants credit from a proprietor who wants payment" is an accept.')
L.append('- **Stay concrete.** "Conflict", "power dynamics" and "someone wants something" describe everything; '
'if that is the best you can say, reject.')
L.append(f'- **An accepted situation needs at least {rf.MIN_MEMBERS} scenes from at least {rf.MIN_STORIES} stories '
f'after exclusions, with no story above {rf.MAX_DOMINANT:.0%}.** The checker tells you if exclusions break that.')
L.append('- **"Most similar" is a hint from the embeddings and is often wrong.** Merge only when the situations are the same.')
L.append('- Scenes are machine summaries with names replaced by "someone"; the story title is the original.\n')
L.append('An invented example of a completed entry (not from this corpus):\n')
L.append('```json')
L.append(json.dumps({'id': 'C00', 'kind': 'accepted', 'decision': 'accept',
'situation': 'A junior clerk wants a raise from an employer who wants more work for the same pay.',
'actor': 'a junior clerk', 'counterpart': 'an employer', 'stakes': 'his wage and his job',
'exclude': ['C00.04'], 'merge_into': None, 'notes': ''}, indent=1))
L.append('```\n')
L.append('## When you are done\n')
L.append('```sh')
L.append(f'python3 apply_review.py {out}')
L.append('```\n')
L.append('It checks the whole form and lists **every** problem at once — a missing decision, a scene id that '
'is not in that candidate, a merge into something you rejected, exclusions that leave too few '
'stories. Nothing is written until the form passes. Then it writes **`situations.json`**: each '
'situation\'s wording, roles and stakes, the scenes that show it with their stories, and the '
'candidates it came from. That file is what the next stage reads.\n')
def section(cid):
c = cands[cid]
st = c['stats']
L.append(f'### {cid} — {st["scenes"]} scenes from {st["stories"]} stories\n')
if c['kind'] == 'accepted':
L.append(f'Passed the gate: cohesion S1 {st["S1"]:.3f} (needs {gate["S1"]:.3f}), Z1 {st["Z1"]:.1f} '
f'(needs {gate["Z1"]}); largest story share {st["largest_story_share"]:.0%}. ')
else:
L.append('Missed the gate: ' + '; '.join(c['gate_failures']) + '. ')
sim = c['most_similar']
if sim['id']:
L.append(f'Most similar candidate: {sim["id"]} (cosine {sim["cosine"]:.2f} — a hint only).\n')
L.append('| Scene | Story | Summary |')
L.append('| --- | --- | --- |')
for m in c['members']:
L.append(f'| {m["member"]} | {cell(m["title"].title())} | {cell(m["summary"])} |')
L.append('')
L.append('## Candidates that passed the gate — a decision is required\n')
for cid in accepted:
section(cid)
L.append('## Near misses — optional\n')
L.append('These failed the gate narrowly. Leave them as `"skip"` unless one clearly shows a situation.\n')
for cid in borderline:
section(cid)
return '\n'.join(L) + '\n'
if __name__ == '__main__':
main()
@@ -0,0 +1,655 @@
# Situation review — run k60-s24
Generated 2026-09-15T06:10:32-04:00 by `probe/review.py` (k-means k = 60, seed 24, gate G2).
## What the program found
- 838 scenes from 94 stories, grouped into 60 clusters.
- 40 clusters are large and varied enough to be candidates (at least 5 scenes from at least 4 stories, no story above 40%).
- **12 candidates passed the automatic gate (G2): C01, C02, C03, C04, C05, C06, C07, C08, C09, C10, C11, C12.** On blind-labelled test data about 3 in 4 clusters that G2 accepts are real situations, so expect to reject roughly 3 of these.
- 8 more candidates narrowly failed the gate: B01, B02, B03, B04, B05, B06, B07, B08. They are at the end. **Reviewing them is optional.**
## What you are asked to do
Budget about a minute per candidate. For each candidate below, read its scenes, then fill in its entry in **`review.json`** in this directory. That is the only file to edit; `candidates.json` is the program's record and must stay as it is.
For each candidate, answer:
1. **Do most of these scenes show one recurring situation** — one person wanting something specific from another? → `decision`
2. **If so, what is it?** One sentence: who wants what from whom. → `situation`, `actor`, `counterpart`, `stakes`
3. **Which scenes do not show it?** → `exclude`
4. **Is it the same situation as another candidate?** → `decision: "merge"` and `merge_into`
| Field | What to put | When |
| --- | --- | --- |
| `decision` | `"accept"` — most scenes show one situation. `"reject"` — they do not. `"merge"` — the same situation as another candidate you accepted. Near misses (B…) start as `"skip"` and may be changed to `"accept"` or `"merge"`. | always |
| `situation` | One sentence, at most 200 characters: who wants what from whom. | accept |
| `actor` | The role that wants something — a role such as "a lodger", never a character's name. | accept |
| `counterpart` | The role they want it from. | accept |
| `stakes` | What is won or lost, in a few words. | asked for; not required |
| `exclude` | Scene ids that do **not** show the situation, e.g. `["C04.02", "C04.11"]`. | when some do not fit |
| `merge_into` | The id of the accepted candidate this one duplicates. | merge |
| `notes` | Anything worth keeping. | optional |
Guidance:
- **A shared place, mood, job or word is not a situation.** "Scenes in restaurants" is a reject; "a diner wants credit from a proprietor who wants payment" is an accept.
- **Stay concrete.** "Conflict", "power dynamics" and "someone wants something" describe everything; if that is the best you can say, reject.
- **An accepted situation needs at least 5 scenes from at least 4 stories after exclusions, with no story above 40%.** The checker tells you if exclusions break that.
- **"Most similar" is a hint from the embeddings and is often wrong.** Merge only when the situations are the same.
- Scenes are machine summaries with names replaced by "someone"; the story title is the original.
An invented example of a completed entry (not from this corpus):
```json
{
"id": "C00",
"kind": "accepted",
"decision": "accept",
"situation": "A junior clerk wants a raise from an employer who wants more work for the same pay.",
"actor": "a junior clerk",
"counterpart": "an employer",
"stakes": "his wage and his job",
"exclude": [
"C00.04"
],
"merge_into": null,
"notes": ""
}
```
## When you are done
```sh
python3 apply_review.py review/k60-s24
```
It checks the whole form and lists **every** problem at once — a missing decision, a scene id that is not in that candidate, a merge into something you rejected, exclusions that leave too few stories. Nothing is written until the form passes. Then it writes **`situations.json`**: each situation's wording, roles and stakes, the scenes that show it with their stories, and the candidates it came from. That file is what the next stage reads.
## Candidates that passed the gate — a decision is required
### C01 — 16 scenes from 8 stories
Passed the gate: cohesion S1 0.635 (needs 0.604), Z1 6.8 (needs 5); largest story share 25%.
Most similar candidate: B07 (cosine 0.87 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C01.01 | Extradited From Bohemia | Someone, a painter, travels to New someone to pursue her art career, facing judgment and skepticism from both her rural hometown and urban boardinghouse dwellers. |
| C01.02 | Extradited From Bohemia | Someone, seeking to improve her lot, takes art lessons from a retired barber while navigating the harsh realities of urban life and the competitive world of art. |
| C01.03 | Extradited From Bohemia | Professor someone’s praise for someone’s sketches alternated between admiration and harsh criticism, while someone struggled with personal and professional setbacks, including a missed remittance, unsold artworks, and a headache. |
| C01.04 | From Each According To His Ability | Someone demanded someone produce a story, while someone dismissed someone’s complaints and painted vivid West Coast landscapes for the dinner guests. |
| C01.05 | The Day Resurgent | The artist struggles to depict someone, limited by tradition and personal preferences, while his mentor insists it is a concept without fixed meaning. |
| C01.06 | The Duel | Someone, ambitious businessman, and someone, aspiring artist, clash at the ferry, setting their city-savvy ambitions against each other. |
| C01.07 | A Service Of Love | Someone and someone, newlyweds with a passion for art, face financial hardship in a cramped New someone flat, questioning the value of their shared love for art amidst their struggles. |
| C01.08 | A Service Of Love | Someone and someone, aspiring artists, lived in a cramped flat, dreaming of spacious studios, while their teacher someone and piano tutor someone provided the means to achieve their goals. |
| C01.09 | A Service Of Love | Someone seeks music lessons to support her Art, while someone resents her financial independence and challenges her ambitions. |
| C01.10 | A Service Of Love | Someone pressures her music teacher husband someone to continue studying while she teaches art lessons, leading to financial gains and strained family life. |
| C01.11 | An Adjustment Of Nature | Someone, a young artist, sells his painting for $5,000 while Bill someone, a poet, recounts their past meals at someone’s, a restaurant where patrons often went unpaid, hinting at a history of financial dealings and possibly a power dynamic. |
| C01.12 | A Madison Square Arabian Night | Painter someone struggles with clients' anger and scandal after revealing hidden truths in his portraits. |
| C01.13 | A Madison Square Arabian Night | Someone, once a newspaper artist, struggles to find steady work as he exposes the flaws in people's appearances through his drawings, leading to frequent job losses and a reliance on alcohol for comfort. |
| C01.14 | A Madison Square Arabian Night | Someone, a wealthy patron, seeks someone, an artist, to critique a pastel sketch, wary of its artistic merit and fearing its value. |
| C01.15 | A Madison Square Arabian Night | Someone, eager to profit, demands the artist paint a portrait of his wife based on a drawing, offering payment for the finished work. |
| C01.16 | The Last Leaf | Someone and someone, an artist couple, seek shelter in a quirky someone Village colony, unaware that the looming Pneumonia threatens their fragile existence. |
### C02 — 11 scenes from 8 stories
Passed the gate: cohesion S1 0.626 (needs 0.604), Z1 5.4 (needs 5); largest story share 27%.
Most similar candidate: C03 (cosine 0.91 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C02.01 | The Complete Life Of John Hopkins | Someone, a rebus worker, eludes a policeman by running and jumping into a speeding car driven by a masked chauffeur, unaware of his passenger's indifference. |
| C02.02 | The Girl And The Graft | Someone, a wealthy man, manipulates someone into posing as a criminal to gain attention, revealing his own ambition to be noticed through outrageous and costly efforts. |
| C02.03 | A Bird Of Bagdad | Someone, seeking romance or distress to aid, encounters a young man throwing coins into the street, drawing a crowd and halting traffic. |
| C02.04 | Past One At Rooney’S | Someone, the girl, challenges Cop someone’s authority over her man, someone, with accusations and money, while someone tries to assert his power. |
| C02.05 | Past One At Rooney’S | Cork coerces his girlfriend into a clandestine rendezvous at a known criminal's house, leading to a tense confrontation with the police. |
| C02.06 | The Cop And The Anthem | Someone, a desperate man, attempts to con a young woman by posing as a "masher" in front of a cop, unaware the officer is watching him. |
| C02.07 | The Cop And The Anthem | The policeman watched as the persecuted young woman enticed someone to flee with her, knowing his presence was futile. |
| C02.08 | The Cop And The Anthem | Someone, desperate and ambitious, schemes to escape his current plight but is confronted by a policeman, revealing his criminal activities. |
| C02.09 | Sisters Of The Golden Circle | Someone, accused of murder, throws a kiss at his wife's unseen admirer while his wife advises him to resist arrest. |
| C02.10 | A Harlem Tragedy | Special Terrestrial Officer someone presents a grim case to the court, while court officer threatens to transfer him, revealing the actual suspect is a man in the room. |
| C02.11 | Elsie In New York | Hank someone, a rancher seeking a mate, approaches someone, a shy girl, only to be interrupted by a cop who sees him talking to her. |
### C03 — 13 scenes from 8 stories
Passed the gate: cohesion S1 0.626 (needs 0.604), Z1 5.9 (needs 5); largest story share 38%.
Most similar candidate: C02 (cosine 0.91 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C03.01 | The Voice Of The City | The cop, tasked with maintaining order, confronts a young man who questions the cop's role and civic duty, leading to a conversation about the city's unrest and the cop's mundane nightly duties. |
| C03.02 | The City Of Dreadful Night | The man confronts the Park someone about illegal park users, sparking a conversation about public space usage and social norms. |
| C03.03 | The Gold That Glittered | The General, cornered by street chaos and threatened by two hunters, finds unexpected help from Spider someone, who offers assistance and friendship. |
| C03.04 | Past One At Rooney’S | Someone’s men confront a cop in a dimly lit room, escalating from a casual encounter to a tense confrontation over a missing man. |
| C03.05 | Between Rounds | Policeman someone overhears someone’s domestic dispute, estimating the duration and escalating violence. |
| C03.06 | Memoirs Of A Yellow Dog | The black-and-tan dog and pointer vie for dominance in a social setting, with the black-and-tan mocking the pointer's initial shyness and boasting about his own confidence. |
| C03.07 | After Twenty Years | The policeman, vigilant and observant, encounters a man waiting outside a demolished restaurant, challenging the officer's knowledge of the area's history. |
| C03.08 | After Twenty Years | The policeman, seeking to assert his authority, confronts someone, now a stranger, while someone waits anxiously for his friend. |
| C03.09 | The Badge Of Policeman O’Roon | Someone, now seeking work, confronts someone, a former Gentle Rider, at a club, revealing their shared history and current mismatched fortunes. |
| C03.10 | The Badge Of Policeman O’Roon | Someone secures a position for someone as a mounted policeman in Central Park, leading to someone’s attraction to the officer. |
| C03.11 | The Badge Of Policeman O’Roon | Mounted Policeman someone, desperate for his badge and honor, confronts someone, his friend and rival, in the park, while someone plans to steal his identity and position. |
| C03.12 | The Badge Of Policeman O’Roon | Someone chased the fleeing victoria, his chestnut horse outmaneuvering a pair of runaway bays, while a disguised policeman tried to intervene. |
| C03.13 | The Badge Of Policeman O’Roon | Someone confronts someone, a policeman, over a damaged horse, while someone threatens retribution and invites someone to a social event. |
### C04 — 14 scenes from 11 stories
Passed the gate: cohesion S1 0.616 (needs 0.604), Z1 5.2 (needs 5); largest story share 21%.
Most similar candidate: C05 (cosine 0.88 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C04.01 | The Harbinger | Someone threatens to leave someone to seek payment from their adulterous daughter-in-law someone. |
| C04.02 | One Thousand Dollars | Lawyer someone demands an account of Young someone’s expenditure of $1,000 inherited from his uncle's will, setting off a chain of events involving Old someone. |
| C04.03 | One Thousand Dollars | Someone, seeking money left by his uncle, confronts someone, a blind man, and lawyer someone in a cab, revealing a secret amendment to the will. |
| C04.04 | One Thousand Dollars | Someone confronts someone Sharp and someone, his executors, over the interpretation of a codicil to his uncle's will, threatening to expose their handling of a $1,000 bequest. |
| C04.05 | The Shocks Of Doom | Someone regains composure, demands someone leave, and challenges the lawyer, while someone faints. |
| C04.06 | The Easter Of The Soul | Someone threatens someone with losing his job and demanding repayment of a debt she owes him, while she tries to convince him it is still winter. |
| C04.07 | The Robe Of Peace | Someone, reluctant to leave his job, is pressured by someone and someone to resign, but insists he has found his true calling and will remain. |
| C04.08 | A Municipal Report | Uncle someone, a Negro with a someone coat, corners someone for a contract on her literary works before a rival publisher offers her more. |
| C04.09 | The Trimmed Lamp | Someone challenges someone over her inheritance from Uncle someone, a paltry $20,000 annually, insisting she wants more than financial security. |
| C04.10 | Brickdust Row | Someone demands answers and a cigar, while Lawyer someone holds power over someone’s estate and schedules. |
| C04.11 | Brickdust Row | Lawyer someone demands someone sign documents and discuss family property, while someone resists, preferring to avoid the unpleasant task. |
| C04.12 | Vanity And Some Sables | The father threatens to quit his plumbing job to avoid paying high wages, while his son continues to work diligently despite the family's financial struggles. |
| C04.13 | According To Their Lights | Uncle expects nephew to end engagement with heiress someone to save face, but nephew refuses, citing uncle's own nose deformity. |
| C04.14 | Elsie In New York | Someone seeks work, faces a conflicted decision as a mysterious job offer pits her against a stern, threatening figure. |
### C05 — 22 scenes from 14 stories
Passed the gate: cohesion S1 0.615 (needs 0.604), Z1 6.4 (needs 5); largest story share 14%.
Most similar candidate: B08 (cosine 0.90 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C05.01 | The Harbinger | Someone, desperate for his wife's dollar, conspires with someone and someone to steal it from their married friends in Union Square. |
| C05.02 | The Harbinger | Someone struggles to convince his wife, someone, to join him in a quest for a treasure to save their failing life, while two hired guns wait outside the ruined château. |
| C05.03 | The Harbinger | Someone schemes to win back his wife, someone, with false promises, while someone and someone wait for a dollar from someone. |
| C05.04 | One Thousand Dollars | Someone, now wealthy, seeks advice on what to do with a thousand dollars after inheriting a fortune from his deceased uncle's legal firm, which includes a bequest to a microbe and a ward, leaving him perplexed about his newfound wealth. |
| C05.05 | One Thousand Dollars | Old someone flaunted his wealth and moralizing skills, offering someone various uses for a thousand dollars, to which someone responded with frustration and a desire to spend it impulsively. |
| C05.06 | The Shocks Of Doom | Someone, a panhandler, seeks financial advice from someone, a former high-flyer now destitute, as someone, his wealthy uncle, offers him a comeback. |
| C05.07 | Strictly Business | Someone Valentine, the only witness to someone death, is suspected of embezzling $647,000 and someone lover someone is convinced of his guilt. |
| C05.08 | Babes In The Jungle | Silver and someone anxiously search for the stolen painting in a pawnshop, competing with the owner for its purchase price. |
| C05.09 | The Unknown Quantity | Someone, seeking to repay his father's ill-gotten wealth, consults someone, who explains the futility of restitution to the robbed. |
| C05.10 | The Unknown Quantity | Someone, the businessman, demands repayment for a gold brick he sold, while someone, the accountant, argues the impracticality and futility of such repayment. |
| C05.11 | A Bird Of Bagdad | The young man seeks financial advice from the someone, a noble, in exchange for solving a riddle about his mundane job at someone’s shop. |
| C05.12 | Compliments Of The Season | The Millionaire seeks to solve the disappearance of his rag-doll, while someone examines the clues left by his terrier, Flip. |
| C05.13 | Compliments Of The Season | Black someone demands fifty cents for the rag-doll found at the Millionaire’s mansion, while someone insists it was given to him by the someone of someone. |
| C05.14 | Compliments Of The Season | Someone, a potential prize for the trio of street fighters someone, Black someone, and someone, is coerced into accepting a reward for his services, leading to a tense standoff at the Millionaire’s house. |
| C05.15 | A Night In New Arabia | Someone, desperate for restitution, hires detectives to find heirs of the miner who sold him land for $125 that he later sold for $10,000. |
| C05.16 | The Venturers | Someone searched his pockets for money, finding none, as a man approached him, revealing he had only two pennies for dinner. |
| C05.17 | From The Cabby’S Seat | Someone, desperate for help, brings his wife to the police station after a chaotic horse theft gone wrong. |
| C05.18 | The Assessor Of Success | Someone, with $140 in his pocket, sat on a bench in someone Square, amused by an old man begging for a dollar, sparking a conversation about work and the world's potential for wealth. |
| C05.19 | The Badge Of Policeman O’Roon | Someone, a ten-millionaire, heroically saves a runaway team and a lady, but his true identity as a discharged policeman is revealed. |
| C05.20 | The Tale Of A Tainted Tenner | Auctioneer-like Sitting Bull haggles with a 1899 five-dollar bill for a 1899 five-dollar bill, while a 1899 two-dollar bill offers to share its pocketbook story. |
| C05.21 | The Tale Of A Tainted Tenner | A worn stack of currency moves through various illicit and sometimes charitable hands, always seeking a better fate. |
| C05.22 | The Tale Of A Tainted Tenner | A banker desperate for cash extorts a loan shark, who offers him $60,000 in a safe, but warns of potential danger. |
### C06 — 35 scenes from 24 stories
Passed the gate: cohesion S1 0.610 (needs 0.604), Z1 8.2 (needs 5); largest story share 9%.
Most similar candidate: C11 (cosine 0.92 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C06.01 | The Complete Life Of John Hopkins | Someone, smug after a romantic encounter, confronts a young man who had been flirting with a lady he desires. |
| C06.02 | A Lickpenny Lover | Someone, a lady in her late twenties, diplomatically turns down a man's romantic overtures while subtly arranging a clandestine meeting with him. |
| C06.03 | A Lickpenny Lover | Someone, a young man, eagerly awaits a date with a street-corner shopgirl, while his mother chauffeurs him to a fancy restaurant. |
| C06.04 | Dougherty'S Eye-Opener | The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead. |
| C06.05 | While The Auto Waits | Parkenstacker opened the meeting with flattery, but the girl responded with icy disdain, challenging his assumptions and curiosity. |
| C06.06 | While The Auto Waits | The young man, someone, seeks to understand the upper class while the girl, offended by his ignorance, tries to educate him. |
| C06.07 | While The Auto Waits | The young man seeks advice on choosing between two wealthy suitors, while the girl, of a higher social class, considers his appeal despite her own preferences. |
| C06.08 | Roses, Ruses And Romance | Someone, a poet, challenges his neighbor's romantic display, leading to a clandestine encounter where he spies on her through his window. |
| C06.09 | Roses, Ruses And Romance | Someone, the poet, schemes to meet the mysterious woman who he believes has returned to him, while someone, the businessman, arrives early for his date, frustrating someone’s plans. |
| C06.10 | The Fool-Killer | Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone. |
| C06.11 | The Rathskeller And The Rose | Someone flatters and flirts with the actress, securing a role while her companions and rival, Summers, are left in the dark. |
| C06.12 | A Philistine In Bohemia | Someone persistently courted someone, while she temporized, unaware a date was imminent. |
| C06.13 | The Memento | Someone interrogates someone about his previous love affair, pressing for details and motives in a tense power dynamic. |
| C06.14 | Strictly Business | Someone, recovering from an accident, confronts someone the Tramp Juggler about his secretary Cherry's apparent infatuation, while someone insists she is deeply in love with him. |
| C06.15 | The Fifth Wheel | Someone, a former chauffeur, confronts an enigmatic automobilist demanding answers about his past and a prize, leading to a humiliating encounter. |
| C06.16 | The Unknown Quantity | Someone, torn between her past suitors and the mysterious stranger, struggles to decide whom to forgive and love. |
| C06.17 | A Ramble In Aphasia | A woman accuses someone of not recognizing her, leading to a tense yet intimate dinner where she reveals she remembers him from a past relationship. |
| C06.18 | A Night In New Arabia | Someone, a plain-looking but lovable girl, falls for the grocer's young man, unaware he is preoccupied with his horse, while he courts a more desirable young lady elsewhere. |
| C06.19 | A Night In New Arabia | Someone, a young man engaged to a parlor maid, seeks to impress a wealthy man by visiting his house, offering investment advice, and introducing himself to the man's daughter. |
| C06.20 | Past One At Rooney’S | Cork someone, bored in someone’s, strikes up a conversation with a mysterious girl who decides his fate with a glance. |
| C06.21 | Past One At Rooney’S | A clerk desires a woman, but her guarded responses and insincere explanations threaten to extinguish his burgeoning infatuation. |
| C06.22 | Past One At Rooney’S | Someone courts the anxious girl, while tensions rise as someone prepares to confront them. |
| C06.23 | The Venturers | Someone, exonerated by someone’s confession, reflects on his past queerness while someone accuses him of foolishly not taking what he wanted. |
| C06.24 | Memoirs Of A Yellow Dog | Benedick, frustrated with his unrequited love, insults someone, a woman he dislikes, while someone mocks his love-loving nature. |
| C06.25 | Mammon And The Archer | Someone, desperate for a date, pleads with his father for help in securing a romantic encounter with a woman, revealing his financial desperation and social constraints. |
| C06.26 | An Unfinished Story | Someone, unsure of her next move, hesitates as her landlady informs her of a gentleman caller, while secretly admiring her appearance in a mirror and contemplating her social status. |
| C06.27 | The Caliph, Cupid And The Clock | The Prince attempts to persuade the young man to abandon his job as a clockmaker, a private affair, but the young man resists, eyeing a nearby house. |
| C06.28 | The Caliph, Cupid And The Clock | The young man impatiently defies Prince someone, who insists he remain, revealing a past affair with a woman he wronged, seeking forgiveness and understanding. |
| C06.29 | The Caliph, Cupid And The Clock | The young man demands time to consider the woman's ultimatum, while she watches the clock for a signal of forgiveness or rejection. |
| C06.30 | Lost On Dress Parade | Towers someone, a man seeking a meal and a conversation, pressures a young woman into accompanying him, citing her injured ankle as a pretext, while secretly planning a romantic dinner. |
| C06.31 | By Courier | The young man implores the lady to reconsider his actions, while a streetwise boy delivers a direct challenge to the young man's message. |
| C06.32 | By Courier | The young lady demands a song and dance from the boy, warning him of consequences if he does not comply, while secretly intrigued by his unconventional message. |
| C06.33 | By Courier | The young man confronts the lady, demanding she read a letter explaining his situation, while she accuses him of trying to manipulate her with false stories. |
| C06.34 | Brickdust Row | The girl, seeking a meeting, confronts someone over his refusal to entertain her at his home, revealing her desperation and naivety. |
| C06.35 | The Ferry Of Unfulfilment | The gentleman from someone, seeking companionship, underestimated someone’s preference for financial security over his romantic advances. |
### C07 — 26 scenes from 18 stories
Passed the gate: cohesion S1 0.609 (needs 0.604), Z1 7.3 (needs 5); largest story share 12%.
Most similar candidate: C06 (cosine 0.90 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C07.01 | The Complete Life Of John Hopkins | Someone, seeking groceries, confronts someone over payment, escalating into a physical altercation in the store. |
| C07.02 | One Thousand Dollars | Someone attempts to bribe someone with a thousand-dollar note, but she refuses, leading to a tense interaction between them. |
| C07.03 | The Easter Of The Soul | Someone seeks a song book for a friend in a shop, sparking a confrontation with a red-haired young woman. |
| C07.04 | The Fifth Wheel | The Preacher preaches to a crowd of miners, some of whom tipple, while someone, a former drunk, seeks shelter. |
| C07.05 | The Fifth Wheel | Someone, a young man, confronts the Preacher over unpaid debts while his lover someone arrives, revealing she saw someone at a fortune teller's. |
| C07.06 | The Poet And The Peasant | The bartender accuses someone of being part of someone’s come-on squad, while someone tries to secure change for his valise containing rural clothes. |
| C07.07 | The Call Of The Tame | Someone, a rancher, confronts former friend someone, a businessman, over someone’s new urban manners and social status, leading to a bar encounter. |
| C07.08 | The Call Of The Tame | Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses. |
| C07.09 | The Call Of The Tame | Someone, seated at a restaurant table, manipulates someone into buying drinks while trying to sell his ranch. |
| C07.10 | A Municipal Report | Major someone confronts the narrator in a bar, forcing him to confront a torn, counterfeit dollar bill, intensifying their hostile encounter. |
| C07.11 | Past One At Rooney’S | Ruby someone, a defiant young woman, challenges Cork about smoking in his bar, insisting it is acceptable despite his disapproval. |
| C07.12 | The Duel | Someone, a hat-cleaning shop worker, prefers reading someone’s sea yarns over buying expensive items, while old Tom, a soap manufacturer, tries to sell him cheap books, leading to a confrontation. |
| C07.13 | Between Rounds | Someone and someone engage in a culinary duel, interrupted by a loud scream from their home, causing them to pause briefly in a standoff, while Policeman someone overhears and decides not to intervene. |
| C07.14 | The Cop And The Anthem | Someone smashed a shop window, prompting a chase and confrontation with a policeman, who instead sought out the culprit, leading to someone’s patronizing visit to a cheap restaurant. |
| C07.15 | The Cop And The Anthem | A cigar store owner confronts someone over a stolen umbrella, escalating into a confrontation with a passing policeman. |
| C07.16 | Springtime À La Carte | Someone, a free-lance typewriter, weeps over her restaurant bill as she contemplates the absurdity of ordering an oyster with a sword. |
| C07.17 | The Trimmed Lamp | Someone, a shop-girl, argues with someone about her wages, while someone waits for them on the corner. |
| C07.18 | The Rubaiyat Of A Scotch Highball | Someone, now sober, confronts the saloon culture with newfound hostility, while his drinking companions continue their revelry. |
| C07.19 | The Rubaiyat Of A Scotch Highball | Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions. |
| C07.20 | The Lost Blend | Someone pressures Con and someone to drink more alcohol to continue their failed experiment, leading to a fight in the bar. |
| C07.21 | A Harlem Tragedy | The argument between someone and the red-haired, unshaven man over someone’s street playtime escalates into a competitive betting scenario at a saloon. |
| C07.22 | The Tale Of A Tainted Tenner | Old someone, a reluctant churchgoer, pays for drinks with money offered to a church, which someone, the proprietor, refuses, leading to a confrontation with a beggar woman. |
| C07.23 | The Tale Of A Tainted Tenner | Old someone hands a tainted bill to a woman, who then runs to a bakery and spends it on extravagant treats. |
| C07.24 | The Tale Of A Tainted Tenner | The one-spot accuses her boss of exploiting her in a slum room, while the boss mocks her religious note as worthless. |
| C07.25 | Elsie In New York | The lady accuses someone’s wealthy aunt of aiding the devil by selling brandy balls, inciting someone to seek other work to avoid assisting in their production. |
| C07.26 | Elsie In New York | Someone seeks work in New someone, encountering a stern preacher who warns of the dangers of the theatre, leading her to seek employment in a factory for artificial flowers. |
### C08 — 41 scenes from 29 stories
Passed the gate: cohesion S1 0.609 (needs 0.604), Z1 8.6 (needs 5); largest story share 10%.
Most similar candidate: C06 (cosine 0.92 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C08.01 | A Lickpenny Lover | Someone, millionaire, felt both flattered and awkward as he encountered someone, a shopgirl, in a glove shop, realizing he had no social means to propose to her. |
| C08.02 | A Lickpenny Lover | Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status. |
| C08.03 | Dougherty'S Eye-Opener | Big someone, unsure of his new wife's identity, decided to flaunt her at his usual haunts to impress his social circle. |
| C08.04 | A Comedy In Rubber | Someone and Violet's wedding approached, drawing a boisterous congregation of someone to the Big Church. |
| C08.05 | A Comedy In Rubber | Someone and Violet, creatures of habit, joined the mob to watch their wedding, but returned as a crushed, hysterical woman and two policemen. |
| C08.06 | The Defeat Of The City | Tom accepted an invitation to a wrestling match with a lawyer, leading to a chaotic evening of physical contests and drunken revelry. |
| C08.07 | Roses, Ruses And Romance | Someone proposes to someone’s daughter someone, revealing he receives romantic favors in exchange for information about her whereabouts. |
| C08.08 | The Fool-Killer | Someone pressures his wife into an impulsive marriage proposal, while I, skeptical, suggests seeking advice from someone. |
| C08.09 | Extradited From Bohemia | Someone, now estranged from Sir, plans to reinvent herself in the world of someone, vowing to surpass former lovers and historical figures. |
| C08.10 | A Philistine In Bohemia | Someone, a someone head-waiter, proposes to someone, a New someone, after impressing her with his culinary skills. |
| C08.11 | From Each According To His Ability | Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions. |
| C08.12 | Strictly Business | Old someone had hidden funds, while someone took only his salary; the New someone girl was engaged, and someone and someone ended in a half-Nelson. |
| C08.13 | Strictly Business | Someone desperately tries to convince the Tramp Juggler that his wife Cherry is not secretly in love with him, insisting it's too late and they have been married for two years. |
| C08.14 | The Girl And The Graft | Someone and someone return home after eloping, leaving someone a ticket and pants as wedding gifts. |
| C08.15 | The Unknown Quantity | Someone, desperate to win someone back, seduced her at her wedding before leaving with her soon-to-be-husband Frank. |
| C08.16 | The Unknown Quantity | Someone, the lawyer, left her office to pursue a relationship with someone, the violinist, who moved in above her, bringing much-needed life to her quiet house. |
| C08.17 | A Night In New Arabia | Someone searched for his daughter someone, who had eloped with a wealthy suitor, while his wife someone feigned ignorance. |
| C08.18 | The Girl And The Habit | Someone resigned her cashiership to someone, who eagerly accepted and promised to lavish her fortune on the adoptive couple. |
| C08.19 | The Venturers | Someone invites someone to dine with him, setting a someone evening at seven for a potential romantic engagement. |
| C08.20 | The Venturers | Someone gazed at the unchanged room, recalling his past with Lady, while someone announced her upcoming marriage. |
| C08.21 | The Skylight Room | Someone’s failed job applications and heartbreak led her to someone, who proposed marriage, prompting her to seek solace in the unlikely embrace of someone in the skylight room. |
| C08.22 | The Coming-Out Of Maggie | Someone and someone’s friendship shifted as someone accepted a date with a new suitor, leaving someone feeling sidelined and envious. |
| C08.23 | An Adjustment Of Nature | Someone proposes to the first white apron he sees, while someone and someone scheme to buy a someone cottage with their ill-gotten gains. |
| C08.24 | The Love-Philtre Of Ikey Schoenstein | Someone, uncertain about his fiancé's wedding plans, pressures someone to find a drug to ensure Rosy's attendance, while secretly preparing for their elopement. |
| C08.25 | Mammon And The Archer | Someone demanded someone show her the engagement ring, while Aunt someone revealed someone and someone were engaged, infuriating someone. |
| C08.26 | From The Cabby’S Seat | The someone family throws a noisy wedding party, drawing curious neighbors and someone’s cab to the sidewalk outside someone. |
| C08.27 | An Unfinished Story | General someone, someone’s ideal knight, looked away as she offered him jam, reminding her of his absence in someone. |
| C08.28 | Sisters Of The Golden Circle | Someone, newlyweds, attempts to impress his bride-to-be someone with his good looks and worldly wisdom. |
| C08.29 | Sisters Of The Golden Circle | A young man and a girl wait impatiently for a fairy to grant them a moment from their wedding day, while a megaphone man preaches about millionaires. |
| C08.30 | Sisters Of The Golden Circle | She lied to her brother about her sister's secret wedding to save her husband, whom she saw leaving their garden. |
| C08.31 | The Romance Of A Busy Broker | Someone proposed to someone, who initially laughed but then accepted, revealing they had secretly married the night before. |
| C08.32 | The Trimmed Lamp | Someone, a shop forelady, rejects a marriage proposal from a wealthy suitor, sparking jealousy from a coworker who had previously invited him to dine. |
| C08.33 | The Trimmed Lamp | Someone, the chaperone, balanced someone and someone’s differing priorities as they sought excitement, with someone advocating for marriage and financial independence, while someone preferred her position and learning opportunities. |
| C08.34 | The Trimmed Lamp | Someone berates someone for still working at the store, unaware that she has won a significant prize and is about to marry someone. |
| C08.35 | The Rubaiyat Of A Scotch Highball | Someone and someone covet someone, engaging in secret readings that transform the verses into a sacred text, unaware of its illicit origins until their marriage and move to New someone exposes them to its forbidden nature. |
| C08.36 | The Buyer From Cactus City | Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain. |
| C08.37 | The Lost Blend | Con returns to the back room after drinking a mysterious golden liquid, finding someone upstairs and preparing to propose marriage. |
| C08.38 | The Count And The Wedding Guest | Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position. |
| C08.39 | The Count And The Wedding Guest | Someone’s engagement to someone put someone in a position of curiosity and suspicion, as he remained distant and secretive despite their intimate park bench meetings. |
| C08.40 | The Count And The Wedding Guest | Someone declines Big someone’s wedding invitation, citing a reason related to politics, despite someone’s encouragement. |
| C08.41 | The Count And The Wedding Guest | Someone, fearing her impending marriage to someone, confesses her deception involving a fake engagement to a deceased Count, while someone remains skeptical and forgiving. |
### C09 — 25 scenes from 18 stories
Passed the gate: cohesion S1 0.609 (needs 0.604), Z1 7.1 (needs 5); largest story share 12%.
Most similar candidate: C06 (cosine 0.90 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C09.01 | The Voice Of The City | The poet seeks advice from someone about his failed ties and unfulfilled prophecy, while a newsboy offers practical advice about buying a birthday present for someone. |
| C09.02 | The Easter Of The Soul | Someone, a someone, accuses someone of neglecting his civic duties, while someone dismisses spring as lacking, sparking a disagreement. |
| C09.03 | The Fool-Killer | Someone and the someone argue under the moonlight, with the someone threatening someone, who senses he is the only one aware of the danger. |
| C09.04 | The Fool-Killer | Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity. |
| C09.05 | The Fifth Wheel | The professor and the elderly woman argue over the validity of a someone, with the latter skeptical and the former convinced. |
| C09.06 | The Fifth Wheel | Professor someone and the lady debate the meaning of an ancient prophecy while someone, a former coachman, is approached by an enchanter about returning to his old home. |
| C09.07 | The Call Of The Tame | Someone, a man from the North, confronts a man from the West, challenging his identity and social status. |
| C09.08 | The Unknown Quantity | A mathematician and a businessman debate the nature of reality, with the former questioning the latter's assumptions. |
| C09.09 | Psyche And The Pskyscraper | The philosopher tries to explain celestial phenomena to someone, who becomes angry and insists on leaving, leading to a confrontation. |
| C09.10 | Proof Of The Pudding | Someone demands an evaluation of someone’s story, while someone criticizes someone’s writing style, leading to a heated argument. |
| C09.11 | Proof Of The Pudding | Someone and Editor someone debate how a woman would truly react in real life versus on stage, contrasting passionate speeches with mundane, muddled speech. |
| C09.12 | Proof Of The Pudding | Editor someone debated the authenticity of characters' dialogue with author someone, each holding onto their interpretation of realistic versus exaggerated reactions. |
| C09.13 | The Venturers | Someone and someone discuss the decline of adventure and excitement, comparing modern life to the more adventurous times of the someone era, while someone reflects on his failed attempts at hunting and flying. |
| C09.14 | The Venturers | Someone debates marriage prospects with someone, both uncertain about their future despite clear feelings. |
| C09.15 | Tobin’S Palm | Someone, a man of literature, argues with a long man over their differing interpretations of fate and physical appearance, leading to a disagreement and eventual parting. |
| C09.16 | A Cosmopolite In A Café | The dark-haired young man, likely a someone, challenges the someone social order by loudly interrupting the narrator's attempt to gather information about his origins. |
| C09.17 | A Cosmopolite In A Café | Someone challenged the other man's belief in regional uniformity, while the other man dismissed regional labels in favor of individuality. |
| C09.18 | Between Rounds | Someone and someone debate the loss of their lost son someone, comparing him to their deceased child someone, while below a maid searches for a missing six-year-old boy. |
| C09.19 | Mammon And The Archer | Someone, a wealthy young man, debates the merits of spending money with his friends, acknowledging its power but also its limitations in social circles. |
| C09.20 | An Unfinished Story | Someone condemns someone to the bar of judgment, while someone seeks to understand the nature of his accusers and his own fate. |
| C09.21 | By Courier | The young man demands explanation of the narrator's actions, while the narrator refuses, citing her own observations and ideals. |
| C09.22 | Two Thanksgiving Day Gentlemen | The surgeon and driver argue over the critically ill patient's condition while the Old Gentleman's family insists he's merely fasting for health reasons. |
| C09.23 | The Last Leaf | The doctor and someone argue over someone’s chances of survival, with the doctor holding power and someone pushing for any possible intervention. |
| C09.24 | The Last Leaf | Someone, someone, and someone’s sick child argue over someone’s continued presence, with someone insisting on staying to finish her drawings, while someone demands someone leave to see the last ivy leaf fall outside. |
| C09.25 | The Tale Of A Tainted Tenner | The grocer’s clerk argues with a customer over a small change, highlighting the power dynamics in a mundane transaction. |
### C10 — 29 scenes from 17 stories
Passed the gate: cohesion S1 0.608 (needs 0.604), Z1 7.4 (needs 5); largest story share 21%.
Most similar candidate: C12 (cosine 0.91 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C10.01 | A Lickpenny Lover | Someone, a wealthy visitor, hesitates as floorwalker someone confronts him with a shopgirl smile, unaware of the flirtatious nature of his profession. |
| C10.02 | A Lickpenny Lover | Someone persistently courted someone, a shopgirl, offering her a life of leisure in exotic locations to break her from her mundane existence. |
| C10.03 | A Comedy In Rubber | Someone Pry, desperate for attention, coerces Violet someone into a bootblack stand with a promise of a private moment. |
| C10.04 | A Comedy In Rubber | Someone and Violet argued over whether meeting was a mistake as they waited for the bootblack to finish their boots. |
| C10.05 | One Thousand Dollars | Someone, preparing for a matinée, consults her dresser about a potential evening engagement while someone, intrigued by her wealth, asks for advice on how to spend a thousand dollars. |
| C10.06 | Transients In Arcadia | She confesses to someone her lie about wanting a vacation, revealing she actually works at a hosiery counter and is saving for this week off. |
| C10.07 | From Each According To His Ability | Someone presents himself as a crook to someone, a loafer, to seek someone’s help in dressing up for a club meeting. |
| C10.08 | From Each According To His Ability | Someone critiques someone’s outdated clothing, prompting a competitive game of high-stakes clothing swaps between them. |
| C10.09 | From Each According To His Ability | Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner. |
| C10.10 | From Each According To His Ability | Someone, a successful "crook," meets someone at a café to secure a favor from someone, a legendary cow-puncher, before leaving for the West. |
| C10.11 | The Day Resurgent | Someone, flaunting new clothes, pressures someone to join her for church, hinting at a secret plan, while he dodges her questions about an upcoming event. |
| C10.12 | A Night In New Arabia | Someone, disguised as a maid, wheedles someone into lending her clothing to con someone’s wealthy suitor, someone. |
| C10.13 | A Service Of Love | Someone complains about someone’s lack of practice and monotonous white dress, while someone flaunts his gambling winnings to someone. |
| C10.14 | A Service Of Love | Someone tries to uncover someone’s deception about her true occupation as a laundry ironer, leading to a confession and a shared laugh. |
| C10.15 | The Coming-Out Of Maggie | Someone, a factory worker, eagerly awaits her someone night dance with someone, a fellow worker and close friend, despite someone’s awkwardness, to impress her boyfriend someone. |
| C10.16 | The Coming-Out Of Maggie | Someone, deceived into thinking someone is a fellow member, blackmails someone for sexual favors in exchange for protecting him from his true identity as a gangster. |
| C10.17 | The Cop And The Anthem | Someone, confident and well-groomed, seeks success at a high-end restaurant but is turned away due to his shabby attire, forcing him to reconsider his path to success. |
| C10.18 | Mammon And The Archer | Someone, seeking to win back his aunt's favor, bargains with money and Aunt someone’s affectionate ring, while secretly courting someone. |
| C10.19 | An Unfinished Story | Someone, a department store clerk, eagerly plans a dinner date with someone, hoping to impress her friend someone, despite having only fifty cents left from her meager weekly wage. |
| C10.20 | Lost On Dress Parade | Someone ironed his evening suit while his modest earnings funded his nights out in finer attire. |
| C10.21 | The Brief Début Of Tildy | A young laundry worker named someone, drunk and bold, seduced someone, making her suddenly desirable to other men. |
| C10.22 | The Trimmed Lamp | Someone and someone compete for a position and salary in a laundry, with someone emphasizing her social connections and status, while someone focuses on her personal achievements and the value of her work. |
| C10.23 | The Trimmed Lamp | Someone, seeking employment, challenges someone, a serious young electrician, to a vaudeville night for a chance to impress his wealthy friend someone. |
| C10.24 | The Trimmed Lamp | Shop-girls convene to strategize against men, viewing their gatherings as a form of warfare against the household's patriarch. |
| C10.25 | The Trimmed Lamp | Someone, a hunter, persistently pursues game while someone, a laundry worker, saves money for evening pleasures, someone her loyal companion. |
| C10.26 | The Trimmed Lamp | Someone, a working girl, debates buying expensive designer clothes with someone, a coworker who dismisses the idea, revealing their differing social statuses and attitudes. |
| C10.27 | The Trimmed Lamp | Someone, seeking advancement, navigates the social hierarchy of a fashionable salon while secretly preparing for a potential shift in values. |
| C10.28 | The Social Triangle | Someone, a tailor’s apprentice, eagerly seeks out someone at the someone after winning elections in his district. |
| C10.29 | Elsie In New York | Someone assigns someone to try on coats and hats, while behind the scenes, he arranges a dinner reservation for himself. |
### C11 — 31 scenes from 21 stories
Passed the gate: cohesion S1 0.606 (needs 0.604), Z1 7.8 (needs 5); largest story share 10%.
Most similar candidate: C06 (cosine 0.92 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C11.01 | A Lickpenny Lover | Someone, cool in his authority, insists they leave while someone’s uncertain nature holds sway, hinting at her potential marriage proposal to someone’s friend. |
| C11.02 | Dougherty'S Eye-Opener | Big someone" someone reluctantly agreed to go out for dinner after his wife insisted, challenging his usual reluctance to leave the house. |
| C11.03 | The Harbinger | Someone calculated someone’s distance, eyeing her as a potential victim for his planned blackmail. |
| C11.04 | The Harbinger | Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage. |
| C11.05 | The Shocks Of Doom | Someone placates someone, a panhandling streetwalker, by taking him to lunch at a hotel, while secretly observing and possibly exploiting him. |
| C11.06 | The Fool-Killer | Someone, the someone, confronts someone, offering him a last chance to escape his impending doom, while ignoring the narrator's presence. |
| C11.07 | The Fool-Killer | Someone seeks to confront an invisible maniac, while I caution him and arrange for his return home with the someone. |
| C11.08 | The Fifth Wheel | Someone, desperate to locate her brother someone, pressures him to return home, while someone, his brother, tries to negotiate a way for someone to come home without arousing suspicion. |
| C11.09 | The Robe Of Peace | Someone, seeking to avoid suspicion, meticulously planned his disappearance, altering his wardrobe to confuse potential suspects. |
| C11.10 | The Unknown Quantity | Someone repels someone with disdain, compelling him to flee in embarrassment and shame. |
| C11.11 | The Unknown Quantity | Lodger No. 2, a charming but mysterious man, seduces someone with tales and innuendo, leading her to believe her husband has returned, despite his long absence. |
| C11.12 | A Ramble In Aphasia | The doctor feigns amnesia to protect his wife from a dangerous impostor, while the impostor tries to exploit their situation. |
| C11.13 | A Municipal Report | Someone manipulates her housekeeper someone to obtain tea and sugar, while hiding a conflict with a man in the house. |
| C11.14 | Proof Of The Pudding | Someone proposes a scheme to leave someone, pretending to flee with an understanding lover, while someone reluctantly agrees to hide in the dining room to observe her reaction. |
| C11.15 | Past One At Rooney’S | Brick someone warns someone about safety at their usual meeting spot, revealing someone’s absence and the need for caution. |
| C11.16 | Past One At Rooney’S | Cork attempts to persuade a reluctant Ruby to accompany him to her apartment, using flattery and vague references to his social status to gain her trust. |
| C11.17 | Past One At Rooney’S | Someone fears a police raid will end his career, while someone orchestrates an escape plan, engaging in tense negotiations with the police and guiding his guests through a secret ladder to safety. |
| C11.18 | The Venturers | Someone and someone engage in a card game over dinner, with someone winning and planning to use a pretext to escape. |
| C11.19 | The Venturers | Someone proposes postponing dinner indefinitely, revealing he is leaving for a world voyage to escape uncertainty, while someone expresses skepticism and hints at his own secret marriage. |
| C11.20 | The Love-Philtre Of Ikey Schoenstein | Someone schemes to bribe Rosy with a rumored love potion to prevent her from leaving Old Man Riddle. |
| C11.21 | The Love-Philtre Of Ikey Schoenstein | Someone plots to elope with Rosy, bribing someone to poison her, while someone informs someone Riddle, who will ambush them. |
| C11.22 | The Love-Philtre Of Ikey Schoenstein | Someone waits for news of Rosy's escape while someone informs him she made it, causing someone to question the efficacy of the powder. |
| C11.23 | The Green Door | A beautiful woman forces a hot roll on a man, then flees, leaving him embarrassed and buttonless, contrasting with the expectations of true adventurers. |
| C11.24 | The Green Door | Someone, seeking comfort, lies to the girl, claiming he mistook her door for a piano tuner's, to keep her company despite his intention to leave. |
| C11.25 | Lost On Dress Parade | Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location. |
| C11.26 | A Madison Square Arabian Night | Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story. |
| C11.27 | The Rubaiyat Of A Scotch Highball | Someone silently returned to the table, casting suspicious glances at someone, who had cut out drinking, while he tried to maintain the evening's conversation. |
| C11.28 | The Rubaiyat Of A Scotch Highball | Someone threatens to strangle someone with a bottle, revealing she misunderstood his poetry, while someone overhears and speculates about their relationship. |
| C11.29 | The Buyer From Cactus City | Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature. |
| C11.30 | A Harlem Tragedy | Someone schemes to expose her husband's infidelity while someone hides the truth, causing a domestic conflict upstairs. |
| C11.31 | The Country Of Elusion | Minnie Brown, seeking validation for her trip, pressures the narrator into reading her a story to prevent her from returning home. |
### C12 — 27 scenes from 18 stories
Passed the gate: cohesion S1 0.605 (needs 0.604), Z1 6.7 (needs 5); largest story share 18%.
Most similar candidate: B03 (cosine 0.92 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| C12.01 | A Lickpenny Lover | Someone, a 19-year-old saleslady in men's gloves, learns much about customers and human nature in the Biggest Store, while keeping her own secrets. |
| C12.02 | The Fool-Killer | Someone, charming and at ease in a café, withheld crucial information from her companions, raising suspicions about her true intentions. |
| C12.03 | Transients In Arcadia | Someone, a high-status guest, monopolizes the hotel's services, making employees her slaves and guests her subjects. |
| C12.04 | Transients In Arcadia | Someone, a customer at the someone hotel, negotiates payment for a dress with someone, a hotel employee, while discussing a weekend trip to someone Island. |
| C12.05 | A Philistine In Bohemia | Someone, now coatless, served someone personally, while someone brought her courses, igniting her suspicions and admiration. |
| C12.06 | The Gold That Glittered | At someone, the someone chef serves a fish dish enhanced by someone methods, while the Society for someone detects an ethereal aura around the establishment, captivating diners with its unique flavors and mysterious aftertastes. |
| C12.07 | A Night In New Arabia | Someone, the grocer’s assistant, admires him while someone, the housemaid, resents his indifference to her advances. |
| C12.08 | The Girl And The Habit | Critics reject direct inspiration, forcing authors to rely on the unabridged dictionary for moral themes, while someone’s restaurant thrives with diverse clientele. |
| C12.09 | The Girl And The Habit | Someone, the cash register girl, held sway over patrons with her charm and wit, commanding respect and affection in equal measure. |
| C12.10 | The Girl And The Habit | Customers vie for service at a variety of establishments, each seeking to assert authority or avoid awkwardness. |
| C12.11 | A Cosmopolite In A Café | A lone diner at a secluded table entertains thoughts of cosmopolites amidst a lively café scene, patrons and staff mingling in a mix of elegance and casualness. |
| C12.12 | An Adjustment Of Nature | Someone, the charismatic waitress at someone’s, held sway over the chaotic dining room, revered by patrons as a living legend. |
| C12.13 | An Adjustment Of Nature | The Goddess of Grub, revered by someone, held ultimate power over her customers, yet her presence was suffused with a maternal warmth that made her seem almost human. |
| C12.14 | Memoirs Of A Yellow Dog | A pampered dog resents his overindulged human mistress and resentful servant. |
| C12.15 | Springtime À La Carte | Someone leveraged her deal with someone’s restaurant to secure a typewritten menu for her room, securing both meals and a daily forecast of her patrons' meals. |
| C12.16 | From The Cabby’S Seat | Princes and queens, envying someone’s simple meal, watched as she boarded a cab, only to be met with a demand for payment. |
| C12.17 | Lost On Dress Parade | Someone, seeking to impress the demurely grateful girl, suggests they dine together, recognizing her as a lady despite her plain attire. |
| C12.18 | The Brief Début Of Tildy | Someone, the elegant waitress, serves meals to the bourgeois families on Eighth Avenue, while someone, the gruff owner, handles their payments. |
| C12.19 | The Brief Début Of Tildy | Someone, the other waitress, piqued someone’s jealousy by her superior service and attractiveness at someone’s restaurant. |
| C12.20 | The Brief Début Of Tildy | Rivalry among regulars for someone’s attention threatened to overshadow her, as she received multiple invitations and gifts, while someone, her friend, remained unremarked upon. |
| C12.21 | The Brief Début Of Tildy | Men at someone’s tables flatter someone, while someone, loyal to her, accepts their attentions without reciprocating. |
| C12.22 | The Brief Début Of Tildy | Someone, seeking to boost her wages, exaggerated a minor flirtation with a customer, leading to increased attention from male customers at her restaurant job. |
| C12.23 | The Trimmed Lamp | The squire, someone, and someone, the department store employee, observe and mimic the refined behaviors of their social superiors, seeking to embody the high social refinement that surrounds them. |
| C12.24 | The Trimmed Lamp | Someone, aspiring shop assistant, uses her position to cultivate social connections and discerns wealthy patrons, while her female coworkers monitor her progress and social standing. |
| C12.25 | A Harlem Tragedy | Someone, the café owner's daughter, orders drinks and demands information about her fiancé's infidelity, showing her power and control over the waiter. |
| C12.26 | A Midsummer Knight’S Dream | A summer hotel's diverse crowd, from young artists and naval officers to fashionable young ladies and a famous milliner, eagerly sought someone’s attention, each hoping to secure her favor or arrange her departure. |
| C12.27 | The Country Of Elusion | Someone and someone sit at someone’s table with someone and someone, while someone and someone observe, with someone’s reputation as a someone princess at stake. |
## Near misses — optional
These failed the gate narrowly. Leave them as `"skip"` unless one clearly shows a situation.
### B01 — 17 scenes from 12 stories
Missed the gate: cohesion S1 0.603, needs 0.604.
Most similar candidate: B03 (cosine 0.92 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B01.01 | Transients In Arcadia | Guests at the hidden someone hotel seek seclusion, while a chef prepares gourmet meals, fearful of discovery by summer resort seekers. |
| B01.02 | The Girl And The Graft | Someone, a conscientious grafter, seeks rest in New someone, his hall bedroom on Eighteenth Street the center of his activities, while a chambermaid watches in awe. |
| B01.03 | A Ramble In Aphasia | Someone checked into a New someone hotel, feeling invigorated and eager to start a new life as a someone delegate to the someone Convention. |
| B01.04 | A Ramble In Aphasia | A pompous hotel clerk mistakes the narrator's identity, leading to confrontations and a change in lodgings. |
| B01.05 | A Municipal Report | A weary traveler haggles with a cab driver over fare, then seeks solace in a ritzy yet overpriced hotel, only to be disappointed by its slow service and overpriced food. |
| B01.06 | A Municipal Report | Major someone, newly arrived, confronted General someone’s forces in a fierce battle while someone admired newly installed, untouched brass urinals in the lobby. |
| B01.07 | A Municipal Report | Major someone prowled the hotel lobby like a rabid dog, his smooth-shaven face aglow with a predatory hunger, while the narrator, a someone, watched warily from a safe distance. |
| B01.08 | A Bird Of Bagdad | Someone, the modest restaurateur, seeks adventure at night under the pseudonym of the someone, while his restaurant remains a quiet establishment during the day. |
| B01.09 | Past One At Rooney’S | Frank pulled down green shades, someone stood guard, and Cork and the bookbindery girl feigned casual conversation as the night's illicit activities escalated. |
| B01.10 | The Venturers | Someone proposes a lavish dinner at a hotel, betting on who can withstand the establishment's displeasure, while someone eagerly accepts the challenge. |
| B01.11 | The Venturers | Someone demands payment from someone, who reveals he owns the hotel and offers to make his rooms ready, complicating the dinner party arrangement. |
| B01.12 | Tobin’S Palm | Someone prowls the deck, suspicious of passengers, while someone observes, hinting at a potential encounter with a mysterious crooked-nosed man. |
| B01.13 | The Furnished Room | The guest lies motionless, as the chaotic room attempts to communicate its occupants to him. |
| B01.14 | A Madison Square Arabian Night | Someone, a servant, nervously awaits someone choice of a dubious guest for dinner. |
| B01.15 | A Madison Square Arabian Night | Someone, the host, attempts to placate the aggressive someone, the guest, while someone, the dinner host, tries to initiate a seating arrangement. |
| B01.16 | The Pendulum | Someone awaited someone at the door with a kiss, while he read the evening paper of foreign atrocities, and planned their lavish dinner and evening activities. |
| B01.17 | The Country Of Elusion | Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment. |
### B02 — 15 scenes from 11 stories
Missed the gate: cohesion S1 0.603, needs 0.604.
Most similar candidate: B06 (cosine 0.87 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B02.01 | The Girl And The Habit | Young men at someone’s diner exchanged witty banter for cash, with older men offering more personal favors to curry favor. |
| B02.02 | The Girl And The Habit | A wealthy eccentric banker struck down by fortune in someone’s restaurant is tended by a beautiful cashier who wins over his elderly, childless wife. |
| B02.03 | An Adjustment Of Nature | The someone, hungry and boastful, demands food from the campers, who are initially wary but eventually welcome him, revealing someone’s wealth and beauty. |
| B02.04 | Memoirs Of A Yellow Dog | The old man and the narrator engage in a playful yet contentious relationship over lunch, with the old man holding power and threatening to end their arrangement. |
| B02.05 | The Green Door | Someone, the suitor, pressures and then coddles someone, the hungry woman, during their meal. |
| B02.06 | The Caliph, Cupid And The Clock | Prince someone, hereditary ruler of someone, offers a young man wealth and a palace on the condition he never has a clock in his possession. |
| B02.07 | After Twenty Years | The old friends, now in their seventies, meet at the same restaurant to rekindle their twenty-year-old promise. |
| B02.08 | The Rubaiyat Of A Scotch Highball | Someone and someone dined at tables d'hôte, befriended a couple, and spent evenings dancing, with someone learning to drink and someone to drink more, all while living in a run-down someone. |
| B02.09 | The Pendulum | Someone, alone in his home, prepares a meal and contemplates his loneliness, remembering someone’s presence and realizing her importance to his happiness. |
| B02.10 | Two Thanksgiving Day Gentlemen | Every someone Day for nine years, the Old Gentleman found someone on his bench and took him to a restaurant for a big dinner. |
| B02.11 | Two Thanksgiving Day Gentlemen | The Old Gentleman coerces someone into a someone dinner, hinting someone lacks a male heir to carry on the tradition. |
| B02.12 | Two Thanksgiving Day Gentlemen | The Old Gentleman, living alone, feeds someone, a servant, who sees their relationship as someone’s entitlement to the Old Gentleman's someone feast. |
| B02.13 | Two Thanksgiving Day Gentlemen | The Old Gentleman hosts an annual someone feast for his protégé someone, a tradition recognized by staff. |
| B02.14 | The Assessor Of Success | The old man seeks his son someone, believing him to be a heavy-set man in his late twenties, while someone, annoyed, tries to redirect him to the Bishop of Long Island's dinner. |
| B02.15 | A Midsummer Knight’S Dream | A man, forty and harassed, boasts about New someone’s comforts to a fat companion seeking outdoor adventures. |
### B03 — 23 scenes from 16 stories
Missed the gate: cohesion S1 0.601, needs 0.604.
Most similar candidate: C12 (cosine 0.92 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B03.01 | Extradited From Bohemia | Someone sat entranced by music and conversation, while someone’s influence remained distant, and her friends reveled in someone revelry. |
| B03.02 | A Philistine In Bohemia | Someone’s crowded dining room hosts a mixed crowd of someone, opportunists, and arrivistes, all clamoring for his culinary and social cachet. |
| B03.03 | Strictly Business | Someone, an actor, attends a matinee to watch his less talented colleagues perform, feeling increasingly isolated and frustrated. |
| B03.04 | Strictly Business | Someone, manager of a New someone house, praises someone and Cherry as reliable, gentlemanly performers, yet someone secretly plans to leave the circuit for a more prestigious career. |
| B03.05 | The Gold That Glittered | The General commands a column while someone, visibly uncomfortable, feigns interest in the General's political musings and culinary inquiries. |
| B03.06 | The Call Of The Tame | Someone skillfully steered someone’s lunch choices while someone expressed discontent over his lack of western experiences. |
| B03.07 | A Ramble In Aphasia | Someone revels in unrestrained freedom, only to discover convention holds the true key to liberty. |
| B03.08 | Compliments Of The Season | Black someone temporized as someone, intoxicated with performing for a local literary group, proposed a night off from his usual gig at someone’s theater. |
| B03.09 | Past One At Rooney’S | Someone, the bar owner, wields power over his guests, manipulating them with charm and authority. |
| B03.10 | The Coming-Out Of Maggie | Someone, leader of the association, held power over its members, who feared him but also admired his athletic prowess and social connections. |
| B03.11 | The Caliph, Cupid And The Clock | Prince someone sat on a bench, envying the wealth and power he could wield but choosing instead to mingle with the poor and grant them unexpected largesse. |
| B03.12 | The Romance Of A Busy Broker | Someone juggled urgent business calls and frantic office tasks while Pitcher waited for promised samples, each hoping their day wouldn’t be as chaotic as the broker’s. |
| B03.13 | Lost On Dress Parade | Someone watches as society buds and bon vivants admire his company, while he eagerly anticipates his return to his usual upscale dining. |
| B03.14 | Two Thanksgiving Day Gentlemen | Someone, waiting for the annual someone proclamation, monopolizes a seat in Union Square, expecting good fortune. |
| B03.15 | Two Thanksgiving Day Gentlemen | Someone, despite being visibly ill from overeating, sat contemptuously observing others at a gathering. |
| B03.16 | The Social Triangle | Someone, with his wealth and charisma, commands the someone as he greets his lieutenants, who are intoxicated by his false camaraderie, while someone, now delirious, pledges his loyalty with a drunken gesture. |
| B03.17 | The Social Triangle | Someone, the political mogul, welcomed patrons but was distracted by someone’s fix, while someone, his subordinate, reveled in a minor setback. |
| B03.18 | The Social Triangle | Someone and Van someone sat at separate tables in a luxurious dining room, each aware of the other's power and influence, while someone’s discontent mirrored the social hierarchy's rigid structure. |
| B03.19 | The Social Triangle | Someone, now the center of attention, commands wine for his table and others, flaunting his newfound power. |
| B03.20 | The Lost Blend | Con someone works the bar while Con dances for the elect, a saloon where teetotalers seek refuge in a slot restaurant. |
| B03.21 | The Country Of Elusion | André, once a someone waiter, transformed his restaurant into a bizarre spectacle, attracting someone who flocked to see him as the Grand someone of someone, until he reinvented his establishment as a high-end dining experience for wealthy patrons. |
| B03.22 | The Country Of Elusion | Someone holds power over someone, who seeks a new cover for the table, while someone maintains a tense demeanor under scrutiny. |
| B03.23 | The Country Of Elusion | Someone, the painter, cut up the room with a waiter, while others held power over their respective domains. |
### B04 — 13 scenes from 11 stories
Missed the gate: cohesion against same-size random sets Z1 4.6, needs 5.
Most similar candidate: C11 (cosine 0.90 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B04.01 | The Defeat Of The City | Someone ascended to her room, passing someone who was performing a trick, unaware of her presence, and he was unprepared for her judgment. |
| B04.02 | The Rathskeller And The Rose | Someone maneuvers someone to a secluded table, while her audience reacts with varying degrees of amusement and skepticism. |
| B04.03 | The Memento | Someone ignored someone, preferring the stifling dressing room and audience roar to the tumult below. |
| B04.04 | The Memento | You saw someone Ray's aerial garter flight during her vaudeville act, as patrons desperately tried to catch it, while she announced her retirement to her friend. |
| B04.05 | The Memento | Someone Ray barged into someone’s home, seeking information about her whereabouts and eager to catch up, despite their professional separation. |
| B04.06 | Strictly Business | Someone Cherry, nervous about her performance, accidentally killed someone during a gunshot, leading to a comedic and chaotic aftermath. |
| B04.07 | The Unknown Quantity | Frank, wounded and enraged, violently rejects someone, who flees the scene, leaving the audience to ponder their own fates. |
| B04.08 | The Skylight Room | Roomers jeered at someone, while someone and someone sat aloof, someone’s popularity dependent on their reactions. |
| B04.09 | The Coming-Out Of Maggie | Someone charged into the room of single combat, seizing someone’s stiletto as he lunged, while the Board stood frozen, unsure of what to do. |
| B04.10 | Springtime À La Carte | The man upstairs played music to mask the couple's quarrel, while someone prepared to read, unaware her landlady had already answered the unexpected visitor. |
| B04.11 | The Furnished Room | He searched the room for her, finding only objects, while she remained invisible, tantalizing him with scent. |
| B04.12 | The Pendulum | Someone, distraught, tidied someone’s room, feeling a profound sense of loss as if she had truly vanished. |
| B04.13 | The Country Of Elusion | Someone slapped someone, shocking the room as Conscience's ax echoed, and someone fled, robbed of his climax by someone’s swift hand. |
### B05 — 21 scenes from 8 stories
Missed the gate: cohesion S1 0.600, needs 0.604.
Most similar candidate: C01 (cosine 0.86 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B05.01 | The Plutonian Fire | Editors decide fate of manuscripts based on stamps, with some deemed true and others discarded, reflecting disdain for factual accuracy in fiction. |
| B05.02 | The Plutonian Fire | Someone seeks publication for his manuscripts while facing financial struggles. |
| B05.03 | The Plutonian Fire | Someone, a writer, submits love stories to editors who want them, leading to his frustration as he finds his stories rejected despite their quality. |
| B05.04 | The Plutonian Fire | Someone seeks to write a love story about a New someone girl, but his own internal conflicts and doubts make his attempts fall flat. |
| B05.05 | The Plutonian Fire | Old Hoss smiled confidently, ordering his younger brother to write the winning story, while secretly reading and dismissing his brother's efforts as worthless. |
| B05.06 | The Plutonian Fire | Someone, seeking to recover his writing skills, manipulates a young admirer to provide material for his stories, leading to a complex romantic entanglement. |
| B05.07 | The Plutonian Fire | Old someone, the storyteller, outdid his rival Hoss by combining another woman's heart into an artful love story, securing a lucrative contract and Hoss's enmity. |
| B05.08 | The Rathskeller And The Rose | Someone pressures his protégé to secure the role of someone" by convincing someone, who insists on the authenticity of the part, despite his suggestions being rejected. |
| B05.09 | Strictly Business | Someone presents his vaudeville sketch to someone Cherry, who critiques and improves it, leading to mutual trust and investment in its success. |
| B05.10 | Strictly Business | Someone pressures someone Cherry to invest in improving her stage sketch, promising it will triple their earnings, while secretly manipulating its development. |
| B05.11 | The Poet And The Peasant | Someone’s poem, a pastiche of pastoral clichés, was rejected, angering the poet who submitted a more authentic nature poem, leading to a confrontation with the editor. |
| B05.12 | The Poet And The Peasant | The editor, holding power over someone, praised his poem while someone tactfully accepts a check for his work. |
| B05.13 | A Ramble In Aphasia | Someone, now someone, pressures someone into accepting his help to cure his aphasia, hinting at a covert treatment. |
| B05.14 | A Municipal Report | Someone, a refined Southern essayist, sought financial support from the narrator, who was torn between his professional duties and his admiration for her literary work. |
| B05.15 | A Municipal Report | Someone, now a patient, signed a contract for ghostwriting while slipping, prompting her lawyer to summon a doctor and a team of helpers. |
| B05.16 | Proof Of The Pudding | Spring waggled her eyes at Editor someone, sidetracking him with her charms and leading him away from his work. |
| B05.17 | Proof Of The Pudding | Editor someone basked in the success of his magazine while someone, ragged and unassuming, sought his help. |
| B05.18 | Proof Of The Pudding | Someone, seeking renewed publication, confronts Editor someone, now living in a squalid apartment, with his failed attempts to sell fiction. |
| B05.19 | Proof Of The Pudding | Someone, the editor, demands someone, the writer, explain his tardiness and threatens to alter his work if he does not improve. |
| B05.20 | Proof Of The Pudding | Editor someone attempts to silence contributor someone, asserting art mirrors life's emotions, while someone challenges this notion provocatively. |
| B05.21 | Memoirs Of A Yellow Dog | A struggling writer argues with his publisher over the inclusion of an animal's perspective story, insisting it should be authentic and relatable rather than literary. |
### B06 — 22 scenes from 13 stories
Missed the gate: cohesion S1 0.598, needs 0.604.
Most similar candidate: C06 (cosine 0.90 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B06.01 | The Shocks Of Doom | Someone, worried about money and health, persuades someone to sleep near him in the Square, while someone offers to help secure a job reference for someone. |
| B06.02 | The Fool-Killer | Someone, a cigaretteur and friend to the narrator, envies the narrator's young, melancholic friend who works in a factory for low wages. |
| B06.03 | The Fifth Wheel | Someone, a former coachman, offers a captured tire to a sealskinned gentleman who questions his identity and family, inviting him to a ride in a motor car. |
| B06.04 | The Fifth Wheel | Someone, seeking revenge, confides in someone about a drunken dream involving a mysterious automobile ride, while someone dismisses the tale as nonsense. |
| B06.05 | The Unknown Quantity | Someone, now a wealthy bachelor, revisits his old friend someone, a watchmaker turned outdoorsman, finding them as different as ever. |
| B06.06 | The Venturers | The narrator observes two men, the VENTURER and the ADVENTURE, contemplating the uncertain future of fortune, chance, and discovery on a train journey. |
| B06.07 | The Venturers | Billinger tells a someone story to someone, who leaves the someone Club in his favorite mood of wanting to follow Chance. |
| B06.08 | The Venturers | Someone, a lifelong seeker of unpredictable adventures, eagerly anticipates a bottle of someone with someone, who shares his adventurous spirit. |
| B06.09 | Tobin’S Palm | Someone and his friend seek distraction from his broken heart over lost love by visiting carnival attractions in someone, hoping for signs or luck. |
| B06.10 | Tobin’S Palm | Someone seeks a fortune teller, someone, to uncover the truth about his love interest someone, while revealing his own misfortunes and impending troubles. |
| B06.11 | Tobin’S Palm | The man seeks someone’s advice on fortune-telling, believing him to be a source of good luck, while I, a friend of someone, tries to convince him otherwise. |
| B06.12 | Tobin’S Palm | The man of destiny seeks companionship, offering someone a drink in a saloon to discuss his literary pursuits and the unavailability of a book for him. |
| B06.13 | Man About Town | My friend invites me to a restaurant, hinting at a Man About Town, while I seek out my own social circle instead. |
| B06.14 | From The Cabby’S Seat | Someone, a cabbie, lures a fare into his cab with promises of a leisurely ride, leading her through the city and into his cabaret-like journey. |
| B06.15 | From The Cabby’S Seat | The fare and someone, the cabdriver, negotiate a ride to the Casino where the fare experiences a night of entertainment and revelry. |
| B06.16 | An Unfinished Story | Someone, seeking to add joy to her life, hesitates while her friend someone pressures her to go to someone Island, a decision someone doubts she can make. |
| B06.17 | Brickdust Row | Someone, seeking amusement, pretends to be a common passenger while actually attending a rendezvous with a strikingly beautiful woman at someone Island. |
| B06.18 | Brickdust Row | Someone, now seeing a group of idealists, joins them as they plan to transform mundane tales into enchanted adventures, humbled by their vision. |
| B06.19 | A Midsummer Knight’S Dream | The fat man scoffs at the fisherman's efforts, while the businessman eagerly awaits his catch, each confident in their superior methods. |
| B06.20 | The Count And The Wedding Guest | Someone, alone in New someone, seeks solace from someone’s company in the park, while he reveals he has a long-lost friend named Count someone whom he hopes to introduce to her. |
| B06.21 | The Ferry Of Unfulfilment | The Man from someone, flush with cash, pursues the Girl from someone’s, a beauty on Sixth Avenue, driven by desire and the urgency of his impending return to the North. |
| B06.22 | The Ferry Of Unfulfilment | The Man from someone tries to win over someone, a fellow passenger on a train, with promises of shared gambling and reminiscing about mining, while she remains skeptical and distracted by her own thoughts. |
### B07 — 13 scenes from 10 stories
Missed the gate: cohesion S1 0.602, needs 0.604; cohesion against same-size random sets Z1 4.5, needs 5.
Most similar candidate: C11 (cosine 0.87 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B07.01 | Roses, Ruses And Romance | Someone, the artist, dismissively lists the contents of a magazine he considers dead, infuriating his clerk friend someone Brown. |
| B07.02 | The Gold That Glittered | Someone. |
| B07.03 | The Girl And The Graft | Someone, a graft worker, candidly discussed his profession with curiosity-driven someone, revealing the gendered dynamics of their relationship. |
| B07.04 | The Unknown Quantity | Someone, a mysterious artist, confesses his love to someone, a receptionist, in her office, revealing his identity and passion, while she feels a sudden surge of emotion. |
| B07.05 | The Skylight Room | Someone, the maid, threatens to blow a goodbye kiss to someone from her sickbed, while someone tries to convince the ambulance doctor about the strange case of someone. |
| B07.06 | Springtime À La Carte | Someone agonized over the menu changes, her tears reflecting the loss of someone, as dandelions, his favorite flower, appeared. |
| B07.07 | The Romance Of A Busy Broker | Pitcher, confidential clerk in someone’s office, shows mild interest and surprise as someone’s young lady stenographer arrives with a question about future employment. |
| B07.08 | The Last Leaf | Someone urges someone to sleep while she calls him to model for her old hermit miner, a failed painter who drinks heavily and fears his own mortality. |
| B07.09 | The Last Leaf | Someone demands a modeling session for a sick someone, while someone tries to manage the situation and hide her discomfort. |
| B07.10 | The Last Leaf | Someone, ill and dying, fantasizes about painting while her nurse someone nurses her, unaware of the doctor's grim prognosis for another patient. |
| B07.11 | The Last Leaf | Someone tells her daughter about someone’s death, revealing he had been painting a last ivy leaf before his fatal illness. |
| B07.12 | The Count And The Wedding Guest | Someone reveals a portrait of someone to someone, who agrees to accompany her to someone next someone to help her cope with her grief. |
| B07.13 | The Country Of Elusion | Someone, sub-editor of Doc’s Magazine, leaves work to seek distraction from his day's frustrations by calling his girlfriend, someone. |
### B08 — 7 scenes from 7 stories
Missed the gate: cohesion against same-size random sets Z1 3.8, needs 5.
Most similar candidate: C05 (cosine 0.90 — a hint only).
| Scene | Story | Summary |
| --- | --- | --- |
| B08.01 | From Each According To His Ability | Someone, a Wall Street speculator, seeks an unconventional meeting with a shady Wall Street "crook" for a private conversation. |
| B08.02 | The Fifth Wheel | Someone approaches an abandoned tire on Fifth Avenue, hoping to exploit a wealthy motorist's need for it, while others jeer at the speeding car. |
| B08.03 | The Girl And The Graft | Fifth Avenue millionaire someone accuses his wife someone of "graft" for accepting a valuable diamond brooch from a business associate, while someone himself is revealed to be a front man for a sidewalk merchant someone. |
| B08.04 | A Night In New Arabia | Detectives cornered someone, coerced a confession implicating someone, and arranged a meeting with someone to return a twenty-five-thousand-dollar inheritance. |
| B08.05 | The Venturers | Someone recounts how he met someone, a journalist, at a someone garden party hosted by a grand vizier, where they engaged in a clandestine conversation. |
| B08.06 | The Assessor Of Success | Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence. |
| B08.07 | The Tale Of A Tainted Tenner | The twenty-year-old gambler seeks information from Old someone, the proprietor, only to be met with condescending explanations and eventually surrounded by various social climbers. |
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,247 @@
{
"schema_version": 1,
"run": "k60-s24",
"instructions": "Read REVIEW.md in this directory. Fill in each entry below, then run: python3 apply_review.py review/k60-s24",
"entries": [
{
"id": "C01",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C02",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C03",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C04",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C05",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C06",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C07",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C08",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C09",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C10",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C11",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "C12",
"kind": "accepted",
"decision": null,
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B01",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B02",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B03",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B04",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B05",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B06",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B07",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
},
{
"id": "B08",
"kind": "borderline",
"decision": "skip",
"situation": "",
"actor": "",
"counterpart": "",
"stakes": "",
"exclude": [],
"merge_into": null,
"notes": ""
}
]
}
+202
View File
@@ -0,0 +1,202 @@
"""The human review form: its schema, member ids, checks, and conversion to situations.json.
Kept free of clustering code so apply_review.py and the tests load instantly.
A review run has three files in one directory:
candidates.json written by review.py: what the program found (read-only)
review.json written blank by review.py, filled in by the reviewer
situations.json written by apply_review.py once review.json passes every check
"""
import collections
SCHEMA_VERSION = 1
MIN_MEMBERS, MIN_STORIES, MAX_DOMINANT = 5, 4, 0.40
MAX_SITUATION_CHARS = 200
DECISIONS = {
'accepted': ('accept', 'reject', 'merge'), # passed the gate: the reviewer must decide
'borderline': ('skip', 'accept', 'merge'), # narrowly failed: optional, "skip" by default
}
def member_id(cid, n):
"""C04.07 — the 7th scene of candidate C04."""
return f'{cid}.{n:02d}'
def blank_entry(cid, kind):
return {
'id': cid,
'kind': kind,
'decision': None if kind == 'accepted' else 'skip',
'situation': '',
'actor': '',
'counterpart': '',
'stakes': '',
'exclude': [],
'merge_into': None,
'notes': '',
}
def blank_form(candidates):
return {
'schema_version': SCHEMA_VERSION,
'run': candidates['run']['id'],
'instructions': 'Read REVIEW.md in this directory. Fill in each entry below, then run: '
f'python3 apply_review.py review/{candidates["run"]["id"]}',
'entries': [blank_entry(cid, c['kind']) for cid, c in candidates['candidates'].items()],
}
def shape(members):
"""(scene count, story count, share held by the largest story)."""
counts = collections.Counter(m['story'] for m in members)
return len(members), len(counts), (max(counts.values()) / len(members) if members else 0.0)
def _text(value):
return value.strip() if isinstance(value, str) else ''
def validate(candidates, form):
"""Return (errors, warnings, situations). situations is None whenever there is any error.
Every problem is collected, so the reviewer can fix them all in one pass.
"""
errors, warnings = [], []
cands = candidates['candidates']
if form.get('schema_version') != SCHEMA_VERSION:
errors.append(f'"schema_version" is {form.get("schema_version")!r}; this checker reads {SCHEMA_VERSION}.')
if form.get('run') != candidates['run']['id']:
errors.append(f'This form is for run {form.get("run")!r}, but candidates.json is run '
f'{candidates["run"]["id"]!r}. Use the review.json from the same directory.')
entries = form.get('entries')
if not isinstance(entries, list):
errors.append('"entries" must be a list of candidate entries.')
return errors, warnings, None
by_id = {}
for e in entries:
cid = e.get('id') if isinstance(e, dict) else None
if cid not in cands:
errors.append(f'An entry has id {cid!r}, which is not a candidate in this run.')
elif cid in by_id:
errors.append(f'{cid}: appears more than once; keep one entry.')
else:
by_id[cid] = e
for cid in cands:
if cid not in by_id:
errors.append(f'{cid}: its entry is missing from the form. Restore it (the blank entry is '
f'{{"id": "{cid}", ...}}) and set "decision".')
for cid, e in by_id.items():
kind = cands[cid]['kind']
allowed = DECISIONS[kind]
decision = e.get('decision')
if decision is None:
errors.append(f'{cid}: no decision yet. Set "decision" to one of: {", ".join(allowed)}.')
continue
if decision not in allowed:
errors.append(f'{cid}: "decision" is {decision!r}; for a {kind} candidate use one of: '
f'{", ".join(allowed)}.')
continue
members = cands[cid]['members']
valid = {m['member'] for m in members}
exclude = e.get('exclude', [])
if not isinstance(exclude, list):
errors.append(f'{cid}: "exclude" must be a list of member ids, like ["{cid}.03"].')
exclude = []
unknown = [x for x in exclude if x not in valid]
if unknown:
errors.append(f'{cid}: "exclude" lists {", ".join(map(str, unknown))}, which are not scenes of '
f'{cid}; its scenes are {member_id(cid, 1)} to {member_id(cid, len(members))}.')
if decision == 'accept':
for field in ('situation', 'actor', 'counterpart'):
if not _text(e.get(field)):
errors.append(f'{cid}: accepted, so "{field}" must be filled in.')
situation = _text(e.get('situation'))
if len(situation) > MAX_SITUATION_CHARS:
errors.append(f'{cid}: "situation" is {len(situation)} characters; keep it to one sentence '
f'of at most {MAX_SITUATION_CHARS}.')
if situation and 'want' not in situation.lower():
warnings.append(f'{cid}: "situation" does not say who wants what ("… wants … from …"). '
f'Accepted as written.')
if not _text(e.get('stakes')):
warnings.append(f'{cid}: "stakes" is empty.')
if decision == 'merge':
target = e.get('merge_into')
if target == cid:
errors.append(f'{cid}: cannot merge into itself.')
elif target not in by_id:
errors.append(f'{cid}: "merge_into" is {target!r}, which is not a candidate id in this form.')
elif by_id[target].get('decision') != 'accept':
errors.append(f'{cid}: merges into {target}, but {target} has decision '
f'{by_id[target].get("decision")!r}. Merge only into an accepted candidate, '
f'or accept {cid} instead.')
elif e.get('merge_into') not in (None, ''):
warnings.append(f'{cid}: "merge_into" is set but the decision is {decision!r}; it is ignored.')
if decision in ('reject', 'skip') and exclude:
warnings.append(f'{cid}: "exclude" is ignored because the decision is {decision!r}.')
if decision in ('accept', 'merge') and len(exclude) > len(members) / 2:
warnings.append(f'{cid}: more than half of its scenes are excluded. Check that the situation '
f'named is what this candidate is mostly about.')
if errors:
return errors, warnings, None
groups = collections.OrderedDict((cid, [cid]) for cid, e in by_id.items() if e['decision'] == 'accept')
for cid, e in by_id.items():
if e['decision'] == 'merge':
groups[e['merge_into']].append(cid)
situations = []
for cid, sources in groups.items():
members, seen = [], set()
for src in sources:
excluded = set(by_id[src].get('exclude', []))
for m in cands[src]['members']:
if m['member'] in excluded or m['chunk'] in seen:
continue
seen.add(m['chunk'])
members.append(m)
size, stories, dominant = shape(members)
if size < MIN_MEMBERS or stories < MIN_STORIES or dominant > MAX_DOMINANT:
merged = f' (with {", ".join(sources[1:])} merged in)' if len(sources) > 1 else ''
errors.append(f'{cid}{merged}: after exclusions {size} scenes remain from {stories} stories, the '
f'largest story holding {dominant:.0%}. A situation needs at least {MIN_MEMBERS} '
f'scenes from at least {MIN_STORIES} stories, with no story above '
f'{MAX_DOMINANT:.0%}. Exclude fewer scenes, merge another candidate into it, '
f'or reject it.')
continue
e = by_id[cid]
situations.append({
'id': f'S{len(situations) + 1:02d}',
'from': sources,
'situation': _text(e['situation']),
'actor': _text(e['actor']),
'counterpart': _text(e['counterpart']),
'stakes': _text(e.get('stakes')),
'notes': [_text(by_id[s].get('notes')) for s in sources if _text(by_id[s].get('notes'))],
'size': size,
'stories': stories,
'members': [{k: m[k] for k in ('member', 'chunk', 'story', 'title', 'summary')} for m in members],
})
if errors:
return errors, warnings, None
decided = collections.Counter(e['decision'] for e in by_id.values())
result = {
'schema_version': SCHEMA_VERSION,
'run': candidates['run'],
'counts': {'candidates': len(cands), 'situations': len(situations), 'accepted': decided['accept'],
'merged': decided['merge'], 'rejected': decided['reject'], 'skipped': decided['skip']},
'situations': situations,
'rejected': [cid for cid, e in by_id.items() if e['decision'] == 'reject'],
'skipped': [cid for cid, e in by_id.items() if e['decision'] == 'skip'],
}
return errors, warnings, result
@@ -0,0 +1,22 @@
{
"terms": [
[
"S1",
">=",
0.61185
],
[
"S6",
"<=",
0.16025
]
],
"dev": {
"accepted": 5,
"label2": 3,
"label1plus": 5,
"precision2": 0.6,
"precision1plus": 1.0,
"recall2": 0.6
}
}
+35
View File
@@ -0,0 +1,35 @@
summary_embeddings.json: k=100 seed=11: 20 tight-recurring clusters of 67 sized
=== sample 1: size 6, 6 stories, dominant 17%, coherence 0.851
[A PHILISTINE IN BOHEMIA ] Someone’s crowded dining room hosts a mixed crowd of someone, opportunists, and arrivistes, all clamoring for his culinary and social cachet.
[STRICTLY BUSINESS ] Someone, an actor, attends a matinee to watch his less talented colleagues perform, feeling increasingly isolated and frustrated.
[THE FURNISHED ROOM ] The guest lies motionless, as the chaotic room attempts to communicate its occupants to him.
[A MADISON SQUARE ARABIAN NIG] Someone, the host, attempts to placate the aggressive someone, the guest, while someone, the dinner host, tries to initiate a seating arrangement.
[THE SOCIAL TRIANGLE ] Someone and Van someone sat at separate tables in a luxurious dining room, each aware of the other's power and influence, while someone’s discontent mirrored the social hierarchy's rigid structure.
[THE COUNTRY OF ELUSION ] Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment.
=== sample 2: size 16, 8 stories, dominant 38%, coherence 0.809
[THE FIFTH WHEEL ] Someone, a former coachman, offers a captured tire to a sealskinned gentleman who questions his identity and family, inviting him to a ride in a motor car.
[THE FIFTH WHEEL ] Someone, seeking revenge, confides in someone about a drunken dream involving a mysterious automobile ride, while someone dismisses the tale as nonsense.
[THE VENTURERS ] The narrator observes two men, the VENTURER and the ADVENTURE, contemplating the uncertain future of fortune, chance, and discovery on a train journey.
[THE VENTURERS ] Someone, a lifelong seeker of unpredictable adventures, eagerly anticipates a bottle of someone with someone, who shares his adventurous spirit.
[THE VENTURERS ] Someone recounts his failed adventures, lamenting the predictability of modern life, while someone agrees, feeling cheated by the lack of unpredictable outcomes.
[TOBIN’S PALM ] Someone seeks a fortune teller, someone, to uncover the truth about his love interest someone, while revealing his own misfortunes and impending troubles.
[TOBIN’S PALM ] Someone demands a voyage, accuses the narrator of forgetting prophecies, and questions the narrator's judgment over trifling misfortunes.
[TOBIN’S PALM ] Someone prowls the deck, suspicious of passengers, while someone observes, hinting at a potential encounter with a mysterious crooked-nosed man.
[TOBIN’S PALM ] Someone tries to explain a complex fortune-telling scenario to a man, who then dismisses them both as suspicious and untrustworthy.
[TOBIN’S PALM ] The man seeks someone’s advice on fortune-telling, believing him to be a source of good luck, while I, a friend of someone, tries to convince him otherwise.
[TOBIN’S PALM ] The man of destiny seeks companionship, offering someone a drink in a saloon to discuss his literary pursuits and the unavailability of a book for him.
[THE GREEN DOOR ] Someone, seeking answers, confronts an enigmatic someone who offers him a card, leading to further mysteries and adventures.
[THE FURNISHED ROOM ] Someone and someone discuss renting a room to a suicidal young man, with someone withholding information from him.
[ACCORDING TO THEIR LIGHTS ] Someone seeks information about dismissed police captain someone, suspecting him of wrongdoing, while someone avoids him, believing someone is merely a curious citizen.
[THE FERRY OF UNFULFILMENT ] The Man from someone tries to win over someone, a fellow passenger on a train, with promises of shared gambling and reminiscing about mining, while she remains skeptical and distracted by her own thoughts.
[THE TALE OF A TAINTED TENNER] The twenty-year-old gambler seeks information from Old someone, the proprietor, only to be met with condescending explanations and eventually surrounded by various social climbers.
=== sample 3: size 5, 5 stories, dominant 20%, coherence 0.853
[THE COMING-OUT OF MAGGIE ] Someone, usually passive at dances, becomes the center of attention as someone wins her heart, while other men vie for her company.
[THE BRIEF DÉBUT OF TILDY ] Men at someone’s tables flatter someone, while someone, loyal to her, accepts their attentions without reciprocating.
[BRICKDUST ROW ] Someone observes the vulgar, frenzied crowds at someone, while someone remains calm and happy beside him.
[THE COUNTRY OF ELUSION ] Someone and someone sit at someone’s table with someone and someone, while someone and someone observe, with someone’s reputation as a someone princess at stake.
[THE FERRY OF UNFULFILMENT ] Someone, the Girl from someone’s, chose a seat away from prying eyes, while the smitten Man from someone closed in on her.
+56
View File
@@ -0,0 +1,56 @@
summary_embeddings.json: k=60 seed=11: 17 tight-recurring clusters of 47 sized
=== sample 1: size 15, 13 stories, dominant 13%, coherence 0.809
[TRANSIENTS IN ARCADIA ] Someone and someone discuss their impending departures while reminiscing about their stay at the Hotel someone.
[THE MEMENTO ] Lucy refused to reveal her past as an actress to her friend someone, fearing scandal, yet admitted to her happy life in the village until someone’s gossip revealed someone’s past love affair.
[A RAMBLE IN APHASIA ] A woman accuses someone of not recognizing her, leading to a tense yet intimate dinner where she reveals she remembers him from a past relationship.
[COMPLIMENTS OF THE SEASON ] Someone, Lady, and someone engage in formal social rituals while someone explains something to someone, revealing someone’s disabilities momentarily vanish.
[THE VENTURERS ] Someone, exonerated by someone’s confession, reflects on his past queerness while someone accuses him of foolishly not taking what he wanted.
[THE VENTURERS ] Someone proposes postponing dinner indefinitely, revealing he is leaving for a world voyage to escape uncertainty, while someone expresses skepticism and hints at his own secret marriage.
[THE ROMANCE OF A BUSY BROKER] Someone proposed to someone, who initially laughed but then accepted, revealing they had secretly married the night before.
[LOST ON DRESS PARADE ] Someone, limping from an accident, accepted someone’s dinner invitation, revealing her true identity as a socialite to gain his attention.
[LOST ON DRESS PARADE ] Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
[THE BRIEF DÉBUT OF TILDY ] Someone apologizes to someone for a drunken incident, but she rejects his apology, choosing to remain distant and resentful.
[A MADISON SQUARE ARABIAN NIG] Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story.
[THE RUBAIYAT OF A SCOTCH HIG] Someone confronts his alcoholism, forced to admit it to his drinking buddies, initiating a painful homecoming where he must reconcile his public persona with his private struggles.
[THE BUYER FROM CACTUS CITY ] Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature.
[THE PURPLE DRESS ] Grace, now a rainbow, insists on wearing her new dress despite someone’s unfinished garment and refusal to attend the dinner.
[THE COUNT AND THE WEDDING GU] Someone, fearing her impending marriage to someone, confesses her deception involving a fake engagement to a deceased Count, while someone remains skeptical and forgiving.
=== sample 2: size 18, 9 stories, dominant 22%, coherence 0.797
[FROM EACH ACCORDING TO HIS A] Someone, a Wall Street speculator, seeks an unconventional meeting with a shady Wall Street "crook" for a private conversation.
[BABES IN THE JUNGLE ] Silver returns with the picture, revealing someone trip and its implications for its market value.
[THE FIFTH WHEEL ] Someone approaches an abandoned tire on Fifth Avenue, hoping to exploit a wealthy motorist's need for it, while others jeer at the speeding car.
[THE FIFTH WHEEL ] Someone, a former coachman, offers a captured tire to a sealskinned gentleman who questions his identity and family, inviting him to a ride in a motor car.
[THE FIFTH WHEEL ] Someone, a former chauffeur, confronts an enigmatic automobilist demanding answers about his past and a prize, leading to a humiliating encounter.
[THE FIFTH WHEEL ] Someone, seeking revenge, confides in someone about a drunken dream involving a mysterious automobile ride, while someone dismisses the tale as nonsense.
[A MUNICIPAL REPORT ] The coachman of a funeral carriage lies to a man hired to drive him, attempting to extort money while feigning sympathy for a wealthy woman's financial struggles.
[THE VENTURERS ] The narrator observes two men, the VENTURER and the ADVENTURE, contemplating the uncertain future of fortune, chance, and discovery on a train journey.
[THE VENTURERS ] Someone, a lifelong seeker of unpredictable adventures, eagerly anticipates a bottle of someone with someone, who shares his adventurous spirit.
[THE VENTURERS ] Someone recounts his failed adventures, lamenting the predictability of modern life, while someone agrees, feeling cheated by the lack of unpredictable outcomes.
[TOBIN’S PALM ] Someone seeks a fortune teller, someone, to uncover the truth about his love interest someone, while revealing his own misfortunes and impending troubles.
[TOBIN’S PALM ] Someone demands a voyage, accuses the narrator of forgetting prophecies, and questions the narrator's judgment over trifling misfortunes.
[TOBIN’S PALM ] Someone tries to explain a complex fortune-telling scenario to a man, who then dismisses them both as suspicious and untrustworthy.
[TOBIN’S PALM ] The man seeks someone’s advice on fortune-telling, believing him to be a source of good luck, while I, a friend of someone, tries to convince him otherwise.
[THE BADGE OF POLICEMAN O’ROO] Someone, now seeking work, confronts someone, a former Gentle Rider, at a club, revealing their shared history and current mismatched fortunes.
[ACCORDING TO THEIR LIGHTS ] Someone seeks information about dismissed police captain someone, suspecting him of wrongdoing, while someone avoids him, believing someone is merely a curious citizen.
[ACCORDING TO THEIR LIGHTS ] The Captain, a well-fed man, seeks someone, suspecting him of graft, while someone pressures him to testify against Inspector someone for a bribe.
[THE FERRY OF UNFULFILMENT ] The Man from someone tries to win over someone, a fellow passenger on a train, with promises of shared gambling and reminiscing about mining, while she remains skeptical and distracted by her own thoughts.
=== sample 3: size 15, 10 stories, dominant 20%, coherence 0.819
[THE HARBINGER ] Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
[THE FOOL-KILLER ] Someone pressures his wife into an impulsive marriage proposal, while I, skeptical, suggests seeking advice from someone.
[EXTRADITED FROM BOHEMIA ] Someone, desperate to escape her life, confronts her husband someone, who tries to reason with her, leading to a bitter parting.
[STRICTLY BUSINESS ] Someone, recovering from an accident, confronts someone the Tramp Juggler about his secretary Cherry's apparent infatuation, while someone insists she is deeply in love with him.
[STRICTLY BUSINESS ] Someone desperately tries to convince the Tramp Juggler that his wife Cherry is not secretly in love with him, insisting it's too late and they have been married for two years.
[A RAMBLE IN APHASIA ] Someone, the lawyer's wife, mocks and questions someone’s memory of their past encounter, provoking him with intimate questions about their affair.
[A RAMBLE IN APHASIA ] The doctor feigns amnesia to protect his wife from a dangerous impostor, while the impostor tries to exploit their situation.
[A RAMBLE IN APHASIA ] The lawyer, someone, confronts his unseen wife's lover, someone, revealing he has forgotten his identity and aphasia.
[A MUNICIPAL REPORT ] Someone manipulates her housekeeper someone to obtain tea and sugar, while hiding a conflict with a man in the house.
[BETWEEN ROUNDS ] Someone manipulates her husband into comforting someone, while secretly planning to blame their missing child on her.
[THE SKYLIGHT ROOM ] Someone, the maid, threatens to blow a goodbye kiss to someone from her sickbed, while someone tries to convince the ambulance doctor about the strange case of someone.
[SISTERS OF THE GOLDEN CIRCLE] Someone, accused of murder, throws a kiss at his wife's unseen admirer while his wife advises him to resist arrest.
[A HARLEM TRAGEDY ] Someone plots to provoke a confrontation with her husband, who sits in his stockinged feet reading, as Labor Day approaches.
[A HARLEM TRAGEDY ] Someone schemes to expose her husband's infidelity while someone hides the truth, causing a domestic conflict upstairs.
[A HARLEM TRAGEDY ] A mob of desperate parents, lovers, and maidens pursues a woman, seeking vengeance or solace, while a mysterious figure named someone is comforted by the river.
@@ -0,0 +1,36 @@
"""Read what the tight-recurring clusters actually contain (pass-mark criterion 3).
python3 sample_clusters.py summary_embeddings.json summaries_clean.json [k] [seed]
Uses the same clustering and the same definitions as measure.py, picks three
tight-recurring clusters at random (seeded, so the pick is reproducible and is
not chosen by looking), and prints each member's cleaned summary with the story
it came from. The question for a human reader: is each one recognisably ONE
kind of situation, or a prose register, or a shared vocabulary?
"""
import json, pathlib, random, statistics, sys
emb = sys.argv[1] if len(sys.argv) > 1 else 'summary_embeddings.json'
summ = sys.argv[2] if len(sys.argv) > 2 else 'summaries_clean.json'
K = int(sys.argv[3]) if len(sys.argv) > 3 else 60
SEED = int(sys.argv[4]) if len(sys.argv) > 4 else 11
sys.argv = ['measure.py', emb]
src = pathlib.Path('measure.py').read_text(encoding='utf-8')
exec(src.split("print(f'{path.name}")[0]) # loading, kmeans, describe, constants
summaries = json.loads(pathlib.Path(summ).read_text(encoding='utf-8'))['summaries']
text = {x['chunk']: x['summary'] for x in summaries}
clusters = kmeans(K, SEED)
rows = [(c, describe(c)) for c in clusters]
sized = [(c, d) for c, d in rows if d[0] >= MIN_SIZE]
cut = statistics.median(d[3] for _, d in sized)
tight = [(c, d) for c, d in sized if d[1] >= MIN_STORIES and d[2] <= MAX_DOMINANT and d[3] >= cut]
print(f'{emb}: k={K} seed={SEED}: {len(tight)} tight-recurring clusters of {len(sized)} sized\n')
for n, (c, (size, nst, dom, coh)) in enumerate(random.Random(SEED).sample(tight, min(3, len(tight))), 1):
print(f'=== sample {n}: size {size}, {nst} stories, dominant {dom:.0%}, coherence {coh:.3f}')
for i in c:
print(f" [{chunks[i]['title'][:28]:28}] {text.get(i, '(no summary)')}")
print()
+99
View File
@@ -0,0 +1,99 @@
"""Choose a selection rule on development data only, or apply a frozen rule once (SELECTION.md 4-5).
python3 select_rule.py choose # dev: search, print a leaderboard, write rule-frozen.json
python3 select_rule.py apply # test: apply rule-frozen.json, write test-result.json
Rules are one threshold, or an AND of two, on S1-S6, in the pre-registered direction only.
Thresholds sit midway between adjacent observed values, so a rule does not sit exactly on a
development cluster's value.
"""
import itertools, json, math, pathlib, sys
PREDICT = {'S1': '>=', 'S2': '>=', 'S3': '>=', 'S4': '>=', 'S5': '>=', 'S6': '<='}
def load(name):
sig = json.loads(pathlib.Path(f'signals-{name}.json').read_text())
lab = json.loads(pathlib.Path(f'labels-{name}.json').read_text())
assert all(lab[c]['label'] in (0, 1, 2) for c in sig), f'labels-{name}.json is incomplete'
return [dict(sig[c], id=c, label=lab[c]['label'], name=lab[c]['name']) for c in sig]
def passes(row, term):
s, op, t = term
return row[s] >= t if op == '>=' else row[s] <= t
def metrics(rows, accept):
acc = [r for r in rows if accept(r)]
n2 = sum(r['label'] == 2 for r in acc)
n1 = sum(r['label'] >= 1 for r in acc)
total2 = sum(r['label'] == 2 for r in rows)
return {'accepted': len(acc), 'label2': n2, 'label1plus': n1,
'precision2': n2 / len(acc) if acc else 0.0,
'precision1plus': n1 / len(acc) if acc else 0.0,
'recall2': n2 / total2 if total2 else 0.0}
def midpoints(values):
v = sorted(set(values))
return [v[0] - 1e-6] + [(a + b) / 2 for a, b in zip(v, v[1:])] + [v[-1] + 1e-6]
def describe_rule(terms):
return ' AND '.join(f'{s} {op} {t:.4f}' for s, op, t in terms)
mode = sys.argv[1] if len(sys.argv) > 1 else 'choose'
if mode == 'choose':
rows = load('dev')
total2 = sum(r['label'] == 2 for r in rows)
need = math.ceil(total2 / 2)
grid = {s: [(s, op, t) for t in midpoints(r[s] for r in rows)] for s, op in PREDICT.items()}
rules = [[term] for s in PREDICT for term in grid[s]]
rules += [[a, b] for s1, s2 in itertools.combinations(PREDICT, 2) for a in grid[s1] for b in grid[s2]]
scored = []
for terms in rules:
m = metrics(rows, lambda r: all(passes(r, t) for t in terms))
if m['label2'] >= need:
# highest precision; then simpler; then more label-2 accepted; then higher >=1 precision
scored.append(((m['precision2'], -len(terms), m['label2'], m['precision1plus']), terms, m))
scored.sort(key=lambda x: x[0], reverse=True)
print(f'dev: {len(rows)} candidates, {total2} labelled 2, rule must accept >= {need} of them\n')
for name, accept in (('accept all candidates', lambda r: True), ('B0: tightness filter', lambda r: r['B0_tight'])):
m = metrics(rows, accept)
print(f' baseline {name:26} accepted {m["accepted"]:2} P2 {m["precision2"]:.2f} P1+ {m["precision1plus"]:.2f} R2 {m["recall2"]:.2f}')
print('\nbest single-signal rule per signal:')
for s in PREDICT:
best = next((x for x in scored if len(x[1]) == 1 and x[1][0][0] == s), None)
if best:
m = best[2]
print(f' {describe_rule(best[1]):22} accepted {m["accepted"]:2} P2 {m["precision2"]:.2f} P1+ {m["precision1plus"]:.2f} R2 {m["recall2"]:.2f}')
print('\nleaderboard (all eligible rules):')
seen = set()
for key, terms, m in scored:
sig = (describe_rule(terms), m['accepted'])
if len(seen) >= 12: break
if sig in seen: continue
seen.add(sig)
print(f' {describe_rule(terms):44} accepted {m["accepted"]:2} P2 {m["precision2"]:.2f} P1+ {m["precision1plus"]:.2f} R2 {m["recall2"]:.2f}')
key, terms, m = scored[0]
pathlib.Path('rule-frozen.json').write_text(json.dumps({'terms': terms, 'dev': m}, indent=1))
print(f'\nCHOSEN: {describe_rule(terms)} -> rule-frozen.json')
print('accepted on dev:', ', '.join(f"{r['id']}({r['label']})" for r in rows if all(passes(r, t) for t in terms)))
elif mode == 'apply':
frozen = json.loads(pathlib.Path('rule-frozen.json').read_text())
terms = [tuple(t) for t in frozen['terms']]
rows = load('test')
accept = lambda r: all(passes(r, t) for t in terms)
m = metrics(rows, accept)
print(f'test: {len(rows)} candidates, {sum(r["label"] == 2 for r in rows)} labelled 2')
print(f'FROZEN RULE {describe_rule(terms)}')
print(f' accepted {m["accepted"]} P2 {m["precision2"]:.2f} P1+ {m["precision1plus"]:.2f} R2 {m["recall2"]:.2f}')
for name, acc in (('accept all candidates', lambda r: True), ('B0: tightness filter', lambda r: r['B0_tight'])):
b = metrics(rows, acc)
print(f' baseline {name:26} accepted {b["accepted"]:2} P2 {b["precision2"]:.2f} P1+ {b["precision1plus"]:.2f} R2 {b["recall2"]:.2f}')
print('\naccepted:')
for r in rows:
if accept(r): print(f" {r['id']} label {r['label']} {r['name'] or '-'}")
print('rejected label-2:')
for r in rows:
if not accept(r) and r['label'] == 2: print(f" {r['id']} {r['name']}")
pathlib.Path('test-result.json').write_text(json.dumps({'rule': terms, 'test': m}, indent=1))
+821
View File
@@ -0,0 +1,821 @@
=== D01
- The old man and the narrator engage in a playful yet contentious relationship over lunch, with the old man holding power and threatening to end their arrangement.
- The fat man scoffs at the fisherman's efforts, while the businessman eagerly awaits his catch, each confident in their superior methods.
- Someone demands an evaluation of someone’s story, while someone criticizes someone’s writing style, leading to a heated argument.
- Old man someone, tired of reading history, listens as someone reads about the someone War, bonding over shared history and family duty.
- Someone’s poem, a pastiche of pastoral clichés, was rejected, angering the poet who submitted a more authentic nature poem, leading to a confrontation with the editor.
- Someone and someone discuss the decline of adventure and excitement, comparing modern life to the more adventurous times of the someone era, while someone reflects on his failed attempts at hunting and flying.
- Someone, a man from the North, confronts a man from the West, challenging his identity and social status.
- The philosopher tries to explain celestial phenomena to someone, who becomes angry and insists on leaving, leading to a confrontation.
- Professor someone and the lady debate the meaning of an ancient prophecy while someone, a former coachman, is approached by an enchanter about returning to his old home.
- Captain and someone, at odds, reluctantly agree to act according to their lights in New someone’s divided society, while unseen others converge towards an unknown destination.
- Someone, someone, and someone’s sick child argue over someone’s continued presence, with someone insisting on staying to finish her drawings, while someone demands someone leave to see the last ivy leaf fall outside.
- The professor and the elderly woman argue over the validity of a someone, with the latter skeptical and the former convinced.
- Someone interrupted someone mid-poem, prompting someone to finish the verse and depart, leaving someone to muse over a vision of an angel in the garden.
- Editor someone debated the authenticity of characters' dialogue with author someone, each holding onto their interpretation of realistic versus exaggerated reactions.
- The captain maintains order while the boat struggles to land, while someone and someone navigate their complicated relationship.
- Someone condemns someone to the bar of judgment, while someone seeks to understand the nature of his accusers and his own fate.
- The grocer’s clerk argues with a customer over a small change, highlighting the power dynamics in a mundane transaction.
- Someone, a man of literature, argues with a long man over their differing interpretations of fate and physical appearance, leading to a disagreement and eventual parting.
- Someone challenged the other man's belief in regional uniformity, while the other man dismissed regional labels in favor of individuality.
- A mathematician and a businessman debate the nature of reality, with the former questioning the latter's assumptions.
=== D02
- Someone, an amateur astronomer, names a star someone," sparking debate among colleagues over naming rights.
- Someone, the editor, demands someone, the writer, explain his tardiness and threatens to alter his work if he does not improve.
- Someone demands a dish of dandelions from the proprietor, revealing his identity through a typewritten error to someone and someone.
- Someone, a free-lance typewriter, weeps over her restaurant bill as she contemplates the absurdity of ordering an oyster with a sword.
- Editors decide fate of manuscripts based on stamps, with some deemed true and others discarded, reflecting disdain for factual accuracy in fiction.
- Someone demands attention, accusing others of market manipulation while someone and Silver try to understand and contain his eccentric demands.
- Someone confronts a fraudulent patient while preparing pharmaceuticals with someone, who insists on using different excipients.
- The Grand Duke demands explanations and promises fortune for someone, who questions the agency's methods and loyalty.
- Someone presents a fake $950 roll to "Bunco someone," who quickly exposes it as fraudulent, leading to suspicion and further intrigue among the men.
- Someone, a someone businessman, is arrested for mistaken identity as "someone" someone, a someone burglar, on a train journey.
- Someone demands repayment and compensation for all losses incurred by someone’s bakery failure, escalating from $1,000 to $100,000, as a test of someone’s Socialistic beliefs.
- Someone requests an immigrant's importation, unsure of his origin, while someone interprets his mixed-language accent, leading to confusion and someone’s dismissive nickname "fool.
- Someone confronts someone Sharp and someone, his executors, over the interpretation of a codicil to his uncle's will, threatening to expose their handling of a $1,000 bequest.
- Someone C.
=== D03
- Someone searched for his daughter someone, who had eloped with a wealthy suitor, while his wife someone feigned ignorance.
- Someone’s love for Frank someone, a potential son-in-law, clashes with her father's cattle empire and his private secretary's presence.
- Someone desperately wants to please her husband someone with expensive combs, but her pride prevents her from admitting she needs to sell her watch.
- Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain.
- Lawyer someone demands an account of Young someone’s expenditure of $1,000 inherited from his uncle's will, setting off a chain of events involving Old someone.
- Someone, boasting of a minor injury to his finger, demands more from the secretary, hinting at his son's future wealth while dismissing old favors.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
- Someone demands a strict business partnership, while someone Cherry proposes investing her savings for passive income.
- Caliph someone, desperate to assuage his guilt over his wealth, made numerous charitable donations and bribes, but his heart remained troubled, leading to conflicts with his staff and legal troubles.
- Uncle expects nephew to end engagement with heiress someone to save face, but nephew refuses, citing uncle's own nose deformity.
- Someone demands payment from someone for custom-made clothes, threatening to take her away unless she pays, while someone begrudgingly complies, feeling the financial strain of her desire for fashionable attire.
- The lady accuses someone’s wealthy aunt of aiding the devil by selling brandy balls, inciting someone to seek other work to avoid assisting in their production.
- Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status.
- Someone married someone Van Der Pool, scaling the social someone to reach her high above the reach of others.
- Someone, seeking to win back his aunt's favor, bargains with money and Aunt someone’s affectionate ring, while secretly courting someone.
- Someone, a goblin, attempts to charm the child of the wealthy Millionaire, who resents any attempts at progress and interference in her grief.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- A wealthy eccentric banker struck down by fortune in someone’s restaurant is tended by a beautiful cashier who wins over his elderly, childless wife.
- Old someone, now caliph, seeks to square a ten thousand dollar debt by any means, while his backstory hints at a transformation from a coal mine breaker boy to a wealthy magnate.
- Someone, the chaperone, balanced someone and someone’s differing priorities as they sought excitement, with someone advocating for marriage and financial independence, while someone preferred her position and learning opportunities.
- Someone, a businessman, pays someone for a successful con, questioning if someone despises money despite his confident denial.
- Someone’s father, wealthy but controlling, disowns him, forcing someone to support a factory girl and gamble on his art career.
- Someone challenges someone over her inheritance from Uncle someone, a paltry $20,000 annually, insisting she wants more than financial security.
- Someone resigned her cashiership to someone, who eagerly accepted and promised to lavish her fortune on the adoptive couple.
- Someone declines Big someone’s wedding invitation, citing a reason related to politics, despite someone’s encouragement.
- Someone, seeking to exert influence, charitably donated large sums to the Universal Benevolent Association of the Globe, only to be outdone by a lesser-known donor, sparking jealousy and a playful prank.
- Someone sought to exert her influence over the young man, who held the power of his upcoming someone travel, while maintaining her social status and luxury at the Hotel someone.
- Uncle someone extorted money from someone through false promises and coercion, while the doctor exploited her financially and emotionally.
- Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions.
- The gentleman from someone, seeking companionship, underestimated someone’s preference for financial security over his romantic advances.
- Someone, a shop forelady, rejects a marriage proposal from a wealthy suitor, sparking jealousy from a coworker who had previously invited him to dine.
=== D04
- Someone, the maid, threatens to blow a goodbye kiss to someone from her sickbed, while someone tries to convince the ambulance doctor about the strange case of someone.
- The lawyer, someone, confronts his unseen wife's lover, someone, revealing he has forgotten his identity and aphasia.
- Someone, desperate to escape her life, confronts her husband someone, who tries to reason with her, leading to a bitter parting.
- Someone desperately tries to convince the Tramp Juggler that his wife Cherry is not secretly in love with him, insisting it's too late and they have been married for two years.
- Someone, accused of murder, throws a kiss at his wife's unseen admirer while his wife advises him to resist arrest.
- Someone manipulates her husband into comforting someone, while secretly planning to blame their missing child on her.
- Someone schemes to expose her husband's infidelity while someone hides the truth, causing a domestic conflict upstairs.
- Someone plots to provoke a confrontation with her husband, who sits in his stockinged feet reading, as Labor Day approaches.
- Someone, recovering from an accident, confronts someone the Tramp Juggler about his secretary Cherry's apparent infatuation, while someone insists she is deeply in love with him.
- Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
- Someone pressures his wife into an impulsive marriage proposal, while I, skeptical, suggests seeking advice from someone.
- The doctor feigns amnesia to protect his wife from a dangerous impostor, while the impostor tries to exploit their situation.
- Someone manipulates her housekeeper someone to obtain tea and sugar, while hiding a conflict with a man in the house.
- A mob of desperate parents, lovers, and maidens pursues a woman, seeking vengeance or solace, while a mysterious figure named someone is comforted by the river.
- Someone, the lawyer's wife, mocks and questions someone’s memory of their past encounter, provoking him with intimate questions about their affair.
=== D05
- Someone and someone, aspiring artists, lived in a cramped flat, dreaming of spacious studios, while their teacher someone and piano tutor someone provided the means to achieve their goals.
- Editor someone attempts to silence contributor someone, asserting art mirrors life's emotions, while someone challenges this notion provocatively.
- Someone, once a newspaper artist, struggles to find steady work as he exposes the flaws in people's appearances through his drawings, leading to frequent job losses and a reliance on alcohol for comfort.
- Someone and someone, newlyweds with a passion for art, face financial hardship in a cramped New someone flat, questioning the value of their shared love for art amidst their struggles.
- Someone, reduced to poverty, seeks solace in the public parks while May, a schoolgirl, breathes austerity among the trees.
- Someone, seeking to improve her lot, takes art lessons from a retired barber while navigating the harsh realities of urban life and the competitive world of art.
- Professor someone’s praise for someone’s sketches alternated between admiration and harsh criticism, while someone struggled with personal and professional setbacks, including a missed remittance, unsold artworks, and a headache.
- Someone seeks music lessons to support her Art, while someone resents her financial independence and challenges her ambitions.
- Someone, transfixed by an old church's sweet music, realizes the emptiness of his life and resolves to change.
- Someone, a painter, travels to New someone to pursue her art career, facing judgment and skepticism from both her rural hometown and urban boardinghouse dwellers.
- Someone and someone, an artist couple, seek shelter in a quirky someone Village colony, unaware that the looming Pneumonia threatens their fragile existence.
- Someone pressures her music teacher husband someone to continue studying while she teaches art lessons, leading to financial gains and strained family life.
- Someone seeks publication for his manuscripts while facing financial struggles.
- The artist struggles to depict someone, limited by tradition and personal preferences, while his mentor insists it is a concept without fixed meaning.
- Someone, ambitious businessman, and someone, aspiring artist, clash at the ferry, setting their city-savvy ambitions against each other.
=== D06
- Someone, seeking renewed publication, confronts Editor someone, now living in a squalid apartment, with his failed attempts to sell fiction.
- Someone pressures his protégé to secure the role of someone" by convincing someone, who insists on the authenticity of the part, despite his suggestions being rejected.
- Someone, now estranged from Sir, plans to reinvent herself in the world of someone, vowing to surpass former lovers and historical figures.
- Old someone, the storyteller, outdid his rival Hoss by combining another woman's heart into an artful love story, securing a lucrative contract and Hoss's enmity.
- Someone writes to someone, planning to leave his job and start a traveling opera company with his wife, while Editor someone reacts angrily to the news.
- Someone, seeking to recover his writing skills, manipulates a young admirer to provide material for his stories, leading to a complex romantic entanglement.
- Someone, a writer, submits love stories to editors who want them, leading to his frustration as he finds his stories rejected despite their quality.
- A struggling writer argues with his publisher over the inclusion of an animal's perspective story, insisting it should be authentic and relatable rather than literary.
- Spring waggled her eyes at Editor someone, sidetracking him with her charms and leading him away from his work.
- Someone and someone covet someone, engaging in secret readings that transform the verses into a sacred text, unaware of its illicit origins until their marriage and move to New someone exposes them to its forbidden nature.
- Someone seeks to write a love story about a New someone girl, but his own internal conflicts and doubts make his attempts fall flat.
- Someone, a refined Southern essayist, sought financial support from the narrator, who was torn between his professional duties and his admiration for her literary work.
- Old Hoss smiled confidently, ordering his younger brother to write the winning story, while secretly reading and dismissing his brother's efforts as worthless.
- Uncle someone, a Negro with a someone coat, corners someone for a contract on her literary works before a rival publisher offers her more.
- Someone, a mysterious artist, confesses his love to someone, a receptionist, in her office, revealing his identity and passion, while she feels a sudden surge of emotion.
- Someone, now someone, pressures someone into accepting his help to cure his aphasia, hinting at a covert treatment.
- Editor someone basked in the success of his magazine while someone, ragged and unassuming, sought his help.
- Someone, now a patient, signed a contract for ghostwriting while slipping, prompting her lawyer to summon a doctor and a team of helpers.
- Someone, a poet, challenges his neighbor's romantic display, leading to a clandestine encounter where he spies on her through his window.
- The man of destiny seeks companionship, offering someone a drink in a saloon to discuss his literary pursuits and the unavailability of a book for him.
- Billinger tells a someone story to someone, who leaves the someone Club in his favorite mood of wanting to follow Chance.
- Someone, now seeing a group of idealists, joins them as they plan to transform mundane tales into enchanted adventures, humbled by their vision.
- The editor, holding power over someone, praised his poem while someone tactfully accepts a check for his work.
=== D07
- The General and someone negotiate the sale of a luxurious hotel for personal gain, while someone, the intended victim, discovers the scheme too late.
- Someone, seeking to repay his father's ill-gotten wealth, consults someone, who explains the futility of restitution to the robbed.
- The millionaire lumberman, disguised as a miner, is challenged by the bollworm (someone) and her friends, leading to a series of attempts to win her affections and control.
- The Man from someone, flush with cash, pursues the Girl from someone’s, a beauty on Sixth Avenue, driven by desire and the urgency of his impending return to the North.
- The Millionaire seeks to solve the disappearance of his rag-doll, while someone examines the clues left by his terrier, Flip.
- Someone worked tirelessly in the fast-paced finance office, focused solely on his clients' investments, until a momentary distraction brought him face-to-face with his estranged secretary, someone.
- A worn stack of currency moves through various illicit and sometimes charitable hands, always seeking a better fate.
- Someone, desperate for help, brings his wife to the police station after a chaotic horse theft gone wrong.
- Someone schemes to win back his wife, someone, with false promises, while someone and someone wait for a dollar from someone.
- Someone von someone seeks to outwit Bill someone and someone by guessing the riddle, while someone, the harness maker, tries to stump them with the same puzzle.
- Black someone demands fifty cents for the rag-doll found at the Millionaire’s mansion, while someone insists it was given to him by the someone of someone.
- Someone, a ten-millionaire, heroically saves a runaway team and a lady, but his true identity as a discharged policeman is revealed.
- Someone struggles to convince his wife, someone, to join him in a quest for a treasure to save their failing life, while two hired guns wait outside the ruined château.
- Detectives cornered someone, coerced a confession implicating someone, and arranged a meeting with someone to return a twenty-five-thousand-dollar inheritance.
- Silver and someone anxiously search for the stolen painting in a pawnshop, competing with the owner for its purchase price.
- Someone and someone return home after eloping, leaving someone a ticket and pants as wedding gifts.
- Someone Valentine, the only witness to someone death, is suspected of embezzling $647,000 and someone lover someone is convinced of his guilt.
- Someone attempts to bribe someone with a thousand-dollar note, but she refuses, leading to a tense interaction between them.
- Someone bargains with someone over payment for her labor, while someone and someone scheme to exploit her, revealing her precarious financial situation.
- Auctioneer-like Sitting Bull haggles with a 1899 five-dollar bill for a 1899 five-dollar bill, while a 1899 two-dollar bill offers to share its pocketbook story.
- The Secretary hands someone a ten-dollar bill, transferring authority to someone, who then directs someone to Black someone, the earner of the reward, as he exits the building.
- Someone, desperate for his wife's dollar, conspires with someone and someone to steal it from their married friends in Union Square.
- Fifth Avenue millionaire someone accuses his wife someone of "graft" for accepting a valuable diamond brooch from a business associate, while someone himself is revealed to be a front man for a sidewalk merchant someone.
- Someone, desperate for restitution, hires detectives to find heirs of the miner who sold him land for $125 that he later sold for $10,000.
- Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner.
- Detective resigned after being accused of embezzling funds from his former partner someone, who plans to negotiate a crime syndicate's illegal activities and evade police scrutiny.
- Old someone had hidden funds, while someone took only his salary; the New someone girl was engaged, and someone and someone ended in a half-Nelson.
- Silver, a con artist, offers someone insider information on the town and its people in exchange for their financial support.
- Someone, a potential prize for the trio of street fighters someone, Black someone, and someone, is coerced into accepting a reward for his services, leading to a tense standoff at the Millionaire’s house.
- Old someone hands a tainted bill to a woman, who then runs to a bakery and spends it on extravagant treats.
- Someone schemes to expose Woods, while Woods contemplates a way to exploit the situation for personal gain.
- Jabez someone, a pauper, sought to reclaim his fortune by confronting a wealthy man in the streets, only to be recognized by the city's keen-eyed police.
- Someone executed a series of trades for financial gain, while someone was entangled in a scheme to extort money from someone through a fabricated love affair.
- Someone, a clerk, sells his most prized possession, a cherished cat hair shirt, to buy someone a chain for her wedding ring, revealing the couple's financial desperation and love.
=== D08
- Someone, anxious about her mother's health, returns home only to find someone, her brother, planning to gamble instead of comforting her.
- Someone found his wife someone’s room in disarray with a note explaining she was leaving for a sick mother, prompting concern and suspicion.
- Someone forces someone back to the bench, while someone, fearing for his life, begs for reassurance as he panics over potential misfortunes that could prevent him from receiving his inheritance.
- Someone, a panhandler, seeks financial advice from someone, a former high-flyer now destitute, as someone, his wealthy uncle, offers him a comeback.
- Someone, worried about someone’s deteriorating condition, tries to distract her as someone counts the falling ivy leaves outside, hinting at her own mortality.
- Someone confronted someone, accusing her of abandoning his sister someone, who had disappeared mysteriously.
- Someone, desperate to locate her brother someone, pressures him to return home, while someone, his brother, tries to negotiate a way for someone to come home without arousing suspicion.
- She lied to her brother about her sister's secret wedding to save her husband, whom she saw leaving their garden.
=== D09
- Someone, the elegant waitress, serves meals to the bourgeois families on Eighth Avenue, while someone, the gruff owner, handles their payments.
- Someone, an actor, attends a matinee to watch his less talented colleagues perform, feeling increasingly isolated and frustrated.
- Someone, the charismatic waitress at someone’s, held sway over the chaotic dining room, revered by patrons as a living legend.
- Someone, the bar owner, wields power over his guests, manipulating them with charm and authority.
- The guest lies motionless, as the chaotic room attempts to communicate its occupants to him.
- Someone, a high-status guest, monopolizes the hotel's services, making employees her slaves and guests her subjects.
- Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment.
- Someone, now the center of attention, commands wine for his table and others, flaunting his newfound power.
- Someone, seated at a restaurant table, manipulates someone into buying drinks while trying to sell his ranch.
- Someone, the host, attempts to placate the aggressive someone, the guest, while someone, the dinner host, tries to initiate a seating arrangement.
- Someone leveraged her deal with someone’s restaurant to secure a typewritten menu for her room, securing both meals and a daily forecast of her patrons' meals.
- Someone maneuvers someone to a secluded table, while her audience reacts with varying degrees of amusement and skepticism.
- Critics reject direct inspiration, forcing authors to rely on the unabridged dictionary for moral themes, while someone’s restaurant thrives with diverse clientele.
- A lone diner at a secluded table entertains thoughts of cosmopolites amidst a lively café scene, patrons and staff mingling in a mix of elegance and casualness.
- Guests at the hidden someone hotel seek seclusion, while a chef prepares gourmet meals, fearful of discovery by summer resort seekers.
- Someone holds power over someone, who seeks a new cover for the table, while someone maintains a tense demeanor under scrutiny.
- At someone, the someone chef serves a fish dish enhanced by someone methods, while the Society for someone detects an ethereal aura around the establishment, captivating diners with its unique flavors and mysterious aftertastes.
- Someone’s crowded dining room hosts a mixed crowd of someone, opportunists, and arrivistes, all clamoring for his culinary and social cachet.
- Customers vie for service at a variety of establishments, each seeking to assert authority or avoid awkwardness.
- Someone, the painter, cut up the room with a waiter, while others held power over their respective domains.
=== D10
- Someone, seeking to impress, overplays his hand in a new town, angering Bunco someone with his ostentatious display.
- Someone navigated the mundane routines and sudden upheavals of city life, from thrift store sales to street encounters with danger.
- Abey, a salesman, outmaneuvers someone in a town visit, securing a future business opportunity while someone reveals disdain for the town's amenities.
- Monty schemes to bilk a bank, while Silver critiques the town’s residents as overly complacent and materialistic.
- The narrator seeks to define and create a character, the "Man About Town," but finds no clear description, leading to frustration and further confusion.
- Montague Silver advises someone to leave the West for New someone, a place where "suckers appear in chunks of roe," as he prepares to take advantage of the naive.
- Someone, a young woman, navigates the crowded, neon-lit streets of someone, buying necessities while contemplating her meager finances and the harsh realities of her living situation.
- Someone complains about the town's superficiality and corruption, while someone encourages him to embrace it, leading someone to decide against staying.
- Someone, a clerk at Insurance, seeks to understand life through poverty, love, and war, finding deeper meaning in urban experiences.
- Someone, a salesman, strolls through city streets, drawn to both the homebound and transient crowds, while seeking fortune and excitement.
- Old Tom someone ambles through town, concocting schemes to inject novelty into his mundane social interactions.
- Someone left his club, frustrated by daily monotony and unrequited love, as he walked through dull, fashionable streets.
- The city merchant seeks to impose geometric order on the chaotic nature of rural life, but finds his rigid ways clash with the fluid, curved rhythms of his wife's upbringing.
- Someone wanders aimlessly, desperate to avoid dining at his favorite restaurant, instead hoping for chance encounters that might inspire new ideas.
- Someone, driven by feud-hate, prepared for a confrontation with someone in the orderly, grid-like city streets.
- A keen-eyed gambler coldly rebuffed a rural visitor seeking gambling opportunities in New someone City.
=== D11
- She confesses to someone her lie about wanting a vacation, revealing she actually works at a hosiery counter and is saving for this week off.
- Someone, sub-editor of Doc’s Magazine, leaves work to seek distraction from his day's frustrations by calling his girlfriend, someone.
- Someone.
- Someone led someone to meet someone, a factory worker struggling to cope with sudden prosperity, in her dingy tenement.
- Someone, head clerk and health crank, desires to marry one of the ten young women in his store, each vying for his attention and influence.
- Someone Brown, a vulgarized former Brown, visits someone weekly, offering business insights and criticism, while someone uses him as a scapegoat for his own poetic failures.
- Someone, a tailor’s apprentice, eagerly seeks out someone at the someone after winning elections in his district.
- Someone berates someone for still working at the store, unaware that she has won a significant prize and is about to marry someone.
- Someone seeks employment, but is warned by a protective agency against accepting offers, complicating her search.
- Someone, a young candy store employee, sighs as someone, the proprietor, presses his suit for her hand, while the philosopher contemplates the broader implications of creation.
- One big girl with a black hat blocks someone, demanding she find a new job or join the Scab Committee fighting for better wages and conditions.
- Someone, a graft worker, candidly discussed his profession with curiosity-driven someone, revealing the gendered dynamics of their relationship.
- A young laundry worker named someone, drunk and bold, seduced someone, making her suddenly desirable to other men.
- Shop-girls convene to strategize against men, viewing their gatherings as a form of warfare against the household's patriarch.
- Someone, a hat cleaner, confronts the caliph over suspicion and job prospects in the Big City.
- The squire, someone, and someone, the department store employee, observe and mimic the refined behaviors of their social superiors, seeking to embody the high social refinement that surrounds them.
- Someone, aspiring shop assistant, uses her position to cultivate social connections and discerns wealthy patrons, while her female coworkers monitor her progress and social standing.
- Someone, confined to narrow store aisles, schemes to outmaneuver someone’s persistent attempts to sublet her store space.
- Someone seeks work in New someone, encountering a stern preacher who warns of the dangers of the theatre, leading her to seek employment in a factory for artificial flowers.
- A clerk desires a woman, but her guarded responses and insincere explanations threaten to extinguish his burgeoning infatuation.
- Someone, a cigaretteur and friend to the narrator, envies the narrator's young, melancholic friend who works in a factory for low wages.
- Someone pressures his daughters into starting work, while someone and her friend showcase their skills and ambitions.
- The Goddess of Grub, revered by someone, held ultimate power over her customers, yet her presence was suffused with a maternal warmth that made her seem almost human.
- Someone, a factory worker, eagerly awaits her someone night dance with someone, a fellow worker and close friend, despite someone’s awkwardness, to impress her boyfriend someone.
- Someone, now a star, faces competition from actor someone for her lead role in "someone by Gaslight.
- Someone & someone, the dominant dry goods store in someone City, controls the local economy, with someone, the senior partner, planning to send his junior partner, someone, to New someone to purchase goods.
- Someone, the cash register girl, held sway over patrons with her charm and wit, commanding respect and affection in equal measure.
- Someone seeks work, faces a conflicted decision as a mysterious job offer pits her against a stern, threatening figure.
- Someone stood all day at a hat-cleaning machine, earning twelve dollars per week to ease the pain in his tender feet.
- Someone, her mother, and father discuss her career as a book reviewer, with someone eagerly participating in family someone readings of religious texts.
- Someone persistently courted someone, a shopgirl, offering her a life of leisure in exotic locations to break her from her mundane existence.
- Someone, a shop-girl, argues with someone about her wages, while someone waits for them on the corner.
- Someone, a hunter, persistently pursues game while someone, a laundry worker, saves money for evening pleasures, someone her loyal companion.
- Someone, a department store clerk, eagerly plans a dinner date with someone, hoping to impress her friend someone, despite having only fifty cents left from her meager weekly wage.
- Someone, a working girl, debates buying expensive designer clothes with someone, a coworker who dismisses the idea, revealing their differing social statuses and attitudes.
- Someone and someone compete for a position and salary in a laundry, with someone emphasizing her social connections and status, while someone focuses on her personal achievements and the value of her work.
=== D12
- Someone and Van someone sat at separate tables in a luxurious dining room, each aware of the other's power and influence, while someone’s discontent mirrored the social hierarchy's rigid structure.
- Someone sat entranced by music and conversation, while someone’s influence remained distant, and her friends reveled in someone revelry.
- Roomers jeered at someone, while someone and someone sat aloof, someone’s popularity dependent on their reactions.
- Someone, the political mogul, welcomed patrons but was distracted by someone’s fix, while someone, his subordinate, reveled in a minor setback.
- Rivalry among regulars for someone’s attention threatened to overshadow her, as she received multiple invitations and gifts, while someone, her friend, remained unremarked upon.
- Con, normally assertive, is tongue-tied and abashed before someone, while his colleagues someone and someone conduct secretive alchemical experiments in a hidden back room.
- Someone observes the vulgar, frenzied crowds at someone, while someone remains calm and happy beside him.
- Men at someone’s tables flatter someone, while someone, loyal to her, accepts their attentions without reciprocating.
- Someone, usually passive at dances, becomes the center of attention as someone wins her heart, while other men vie for her company.
- Someone, the Girl from someone’s, chose a seat away from prying eyes, while the smitten Man from someone closed in on her.
- Someone and someone sit at someone’s table with someone and someone, while someone and someone observe, with someone’s reputation as a someone princess at stake.
=== D13
- Cork seeks anonymity from the police by visiting a seedy bar where he hopes to avoid recognition, while someone ventures in search of adventure and potential employment.
- Someone presents himself as a crook to someone, a loafer, to seek someone’s help in dressing up for a club meeting.
- Someone, deceived into thinking someone is a fellow member, blackmails someone for sexual favors in exchange for protecting him from his true identity as a gangster.
- Special Terrestrial Officer someone presents a grim case to the court, while court officer threatens to transfer him, revealing the actual suspect is a man in the room.
- Someone secures a position for someone as a mounted policeman in Central Park, leading to someone’s attraction to the officer.
- Someone, a wealthy man, manipulates someone into posing as a criminal to gain attention, revealing his own ambition to be noticed through outrageous and costly efforts.
- Someone chased the fleeing victoria, his chestnut horse outmaneuvering a pair of runaway bays, while a disguised policeman tried to intervene.
- Mounted Policeman someone, desperate for his badge and honor, confronts someone, his friend and rival, in the park, while someone plans to steal his identity and position.
- Someone, desperate and ambitious, schemes to escape his current plight but is confronted by a policeman, revealing his criminal activities.
- A panicked crowd sought help from two policemen as an ambulance and surgeon intervened, while a newsboy and young journalist gathered information.
- Someone fears a police raid will end his career, while someone orchestrates an escape plan, engaging in tense negotiations with the police and guiding his guests through a secret ladder to safety.
- Someone, a desperate man, attempts to con a young woman by posing as a "masher" in front of a cop, unaware the officer is watching him.
- Hank someone, a rancher seeking a mate, approaches someone, a shy girl, only to be interrupted by a cop who sees him talking to her.
- The policeman watched as the persecuted young woman enticed someone to flee with her, knowing his presence was futile.
- Someone, a rebus worker, eludes a policeman by running and jumping into a speeding car driven by a masked chauffeur, unaware of his passenger's indifference.
- Someone, disguised as a maid, wheedles someone into lending her clothing to con someone’s wealthy suitor, someone.
=== D14
- Someone, or someone, pocketed a cab while someone screamed and old someone complained about his various solicitations.
- Someone commandeered a runaway auto to rescue a boy, while someone tried to stop it, leading to a chaotic chase involving someone and a horse.
- Someone, waiting for the annual someone proclamation, monopolizes a seat in Union Square, expecting good fortune.
- Someone begs alms from the someone populace, met with indifference, before being struck by a vehicle.
- Someone sits his iron horse at Union Square, commanding someone cars with his right hand but ignored by drivers, while his left hand points to a diverse immigrant district.
- Someone, a cabbie, lures a fare into his cab with promises of a leisurely ride, leading her through the city and into his cabaret-like journey.
- Someone waits alone at the Grand Central Station for his fiancée to arrive, knowing he has no chance to speak with her before her voyage to someone.
- The Rough Riders, now mere visitors, bored and dejected, witnessed the city's grandeur but found it dull, leading to a fatal accident amidst the chaos.
- Someone, dropped a ring while climbing out of his cab, now stuck in a congested street blockade with someone impatiently waiting.
- The alien, entranced by the city's chaos, steps into the path of a fire hose-cart, leading to a tragic accident involving someone and his horses.
- Someone, driver of express wagon No. 8,606, observed the Park someone and Polis someone agreeing to allow public parks to be used as sleeping quarters until weather improved, leading to a mass exodus into Central Park.
- A decrepit carriage driver, a patched military coat, and a ragged Negro woman vie for a passenger in a dilapidated street.
- Jehu, the cabby, sees his passengers as cargo to be moved, holding power over them in his high seat.
- The hackneyed old Negro at 861 Jessamine Street holds power over the narrator, who is hesitant to enter despite his desire to go there.
- The citizen, wary of time, consulted his watch for work, unaware that his young interlocutor was fleeing, leaving him alone in the park.
- The invader, a young man with a makeshift valise and a stray wisp of hay, is ignored by the city crowds as he stands in the gutter, evoking pity rather than suspicion.
- Kid someone, humbled by someone’s defiance, disbanded the Stovepipe Gang, now reduced to street-corner ornaments.
- Someone, holding someone tightly, buckles a life preserver around her while passengers panic and the boat begins to sink.
=== D15
- Tenants resist eviction ordered by the City Club and Draying Company, sparking conflict and protest in the park.
- Someone, concerned about complaints about hippopotamuses in the lease, confronts someone about the landlord, while someone explains someone as a New someone tradition.
- The landlord summons someone for eviction, while she seeks clues in a detective story, unaware her luck has run out.
- Someone, the lawyer, left her office to pursue a relationship with someone, the violinist, who moved in above her, bringing much-needed life to her quiet house.
- Major someone demanded drinks, then used genealogy to avoid paying, leading to a clerk suggesting he be evicted for being a loafer without known means of support.
- Characters decipher clues in a threadbare room, revealing guests' fury and violence against their own home.
- Someone confronts someone on the stoop, revealing her neglect and demanding an apology, as spring's warmth and boarders' complaints exacerbate his frustration.
- Someone Brown lounged in his opulent apartment, eyeing the besieged mansion across the garden, while his old neighbor refused to sell his home.
- Someone, a surveyor, confronts a dimly lit green door, bracing for potential danger and intrigue within a room marked by extreme poverty.
- Someone holds power over someone and someone, threatening to evict them if someone does not find a room.
- Homeless men seek shelter in the red brick district, ringing doors only to find neglect and hostility from housekeepers.
- The tenant waits in a musty house filled with various sounds and scents, confused by a sudden, strong mignonette smell that seems to call to him.
- Someone threatens to sit at the protagonist's door until they return, citing curses and financial loss.
- Someone, the real estate agent, holds power over potential tenants, showcasing properties and dismissing those who cannot afford them.
- The one-spot accuses her boss of exploiting her in a slum room, while the boss mocks her religious note as worthless.
- Officer someone evicts the diverse families from their comfortable someone Flats homes, forcing them to sleep in a park under the threat of further eviction at the next election.
- Someone demands to know why someone, now a monk, is in cold storage, highlighting his former status and power.
- Someone hurried home to pay someone for the dress, while Grace cried over being evicted by her landlady.
- He searched for a tenant, found nothing, and confronted the housekeeper about a previous occupant.
- Someone, a tenant, confronts Lawyer someone over the subletting of his father's properties in the shopping district, now occupied by young working girls, insisting he must act before it's too late.
- Someone and the other tenants huddled in the woods, unsure of who to trust as Officer someone enforced his authority over them.
- Rita and someone complain to someone about being forced to stay with someone, who holds power over their financial situation and future, while criticizing his neglect and lack of affection.
- Someone sat in his flat, seeking conversation to spice up his life, while someone complained about the smells from across the hall.
- Someone and someone discuss renting a room to a suicidal young man, with someone withholding information from him.
=== D16
- Someone threatens someone with a loaded gun, knowing no one else was present to commit the theft.
- Someone feigned innocence while Woods held a concealed weapon over him.
- The President, Kid someone, and the Lady engage in a private moment interrupted by someone, who threatens someone and flees, revealing the city's pervasive criminality.
- Someone threatens to strangle someone with a bottle, revealing she misunderstood his poetry, while someone overhears and speculates about their relationship.
- Someone demands her kidnapped child while Ransom reluctantly hands over her stolen furs to her.
- Someone threatens someone with losing his job and demanding repayment of a debt she owes him, while she tries to convince him it is still winter.
- Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence.
- Someone demanded someone take her home, threatening to call the police, while someone tried to retrieve a lost diamond ring, leading to a heated argument and a confrontation with someone.
- The Kid, Ransom, and someone argue over stolen furs, with the police attempting to verify their authenticity and the Kid revealing he paid too much for them.
- Someone brings unexpected mail to someone apartment, including a threatening letter and a photograph, causing someone to become agitated and destructive.
- Someone and the someone argue under the moonlight, with the someone threatening someone, who senses he is the only one aware of the danger.
- Someone threatens someone for encroaching on his territory, warning him to stay out of his district or face consequences.
- Someone threatens to leave someone to seek payment from their adulterous daughter-in-law someone.
=== D17
- Someone, angry with General someone, insults him, causing someone and the Duchess of someone to appear, making her feel inferior.
- A pampered dog resents his overindulged human mistress and resentful servant.
- The black-and-tan dog and pointer vie for dominance in a social setting, with the black-and-tan mocking the pointer's initial shyness and boasting about his own confidence.
- Someone, the bored housewife, spends her days entertaining a stray dog while her husband, someone, wanders the streets, both unaware of the other's existence.
- Someone and someone argue over someone, a St. Bernard dog, while someone watches his philandering wife and daughter.
- Engine Company No. 99 grapples with a troublesome horse, causing friction and suspicion among the firefighters, who blame it for a recent injury and question its national origin.
- Shepherd Blue urged sheep to freedom, while someone trudged home, resigned to another uneventful day.
- The noblewoman hesitates as music from above tempts the hag, who holds power over her, while honor and love try to hold her back.
- The Millionaire's servant searches his vast estate for the lost rag-doll cherished by his spoiled daughter, while the child's mother, a prim lady, struggles to understand her daughter's grief.
- Master and servant journeyed to the ferry, with the cats acknowledging their own tails, while the master bestowed a nickname on the servant.
=== D18
- Someone, a lifelong seeker of unpredictable adventures, eagerly anticipates a bottle of someone with someone, who shares his adventurous spirit.
- Someone, seeking revenge, confides in someone about a drunken dream involving a mysterious automobile ride, while someone dismisses the tale as nonsense.
- Someone seeks information about dismissed police captain someone, suspecting him of wrongdoing, while someone avoids him, believing someone is merely a curious citizen.
- Someone demands a voyage, accuses the narrator of forgetting prophecies, and questions the narrator's judgment over trifling misfortunes.
- Someone recounts his failed adventures, lamenting the predictability of modern life, while someone agrees, feeling cheated by the lack of unpredictable outcomes.
- Someone, a former chauffeur, confronts an enigmatic automobilist demanding answers about his past and a prize, leading to a humiliating encounter.
- Someone tries to explain a complex fortune-telling scenario to a man, who then dismisses them both as suspicious and untrustworthy.
- Someone seeks a fortune teller, someone, to uncover the truth about his love interest someone, while revealing his own misfortunes and impending troubles.
- The narrator observes two men, the VENTURER and the ADVENTURE, contemplating the uncertain future of fortune, chance, and discovery on a train journey.
- Silver returns with the picture, revealing someone trip and its implications for its market value.
- The man seeks someone’s advice on fortune-telling, believing him to be a source of good luck, while I, a friend of someone, tries to convince him otherwise.
- Someone, a Wall Street speculator, seeks an unconventional meeting with a shady Wall Street "crook" for a private conversation.
- Someone approaches an abandoned tire on Fifth Avenue, hoping to exploit a wealthy motorist's need for it, while others jeer at the speeding car.
- The Man from someone tries to win over someone, a fellow passenger on a train, with promises of shared gambling and reminiscing about mining, while she remains skeptical and distracted by her own thoughts.
- Someone, now seeking work, confronts someone, a former Gentle Rider, at a club, revealing their shared history and current mismatched fortunes.
- The coachman of a funeral carriage lies to a man hired to drive him, attempting to extort money while feigning sympathy for a wealthy woman's financial struggles.
- Someone, a former coachman, offers a captured tire to a sealskinned gentleman who questions his identity and family, inviting him to a ride in a motor car.
- The Captain, a well-fed man, seeks someone, suspecting him of graft, while someone pressures him to testify against Inspector someone for a bribe.
=== D19
- Someone ironed his evening suit while his modest earnings funded his nights out in finer attire.
- The sealskinned gentleman invites someone into a lavish, mysterious mansion where someone discovers an array of strange and magical objects.
- Black someone temporized as someone, intoxicated with performing for a local literary group, proposed a night off from his usual gig at someone’s theater.
- Frank pulled down green shades, someone stood guard, and Cork and the bookbindery girl feigned casual conversation as the night's illicit activities escalated.
- Someone, the modest restaurateur, seeks adventure at night under the pseudonym of the someone, while his restaurant remains a quiet establishment during the day.
- Someone, someone, newspaper man, and youth with parted hair party at a table, watched by a newcomer in butternut clothing, all unaware of the impending disturbance.
- Someone recounts how he met someone, a journalist, at a someone garden party hosted by a grand vizier, where they engaged in a clandestine conversation.
- A Negro waiter at a dinner asks if there is anything to do in town, learning the nightlife is closed, leading him to explore the city streets during a race riot.
- A red-haired, unshaven man in carpet-slippers read the evening paper by a window, while his woman cooked, and a curious child asked to play checkers, sparking a conflict between the man's desire for rest and the child's desire for play.
- Someone, a conscientious grafter, seeks rest in New someone, his hall bedroom on Eighteenth Street the center of his activities, while a chambermaid watches in awe.
- Someone packed for a covert return to New someone, armed and prepared for urban intrigue and confrontation.
- Someone, his mother frying bacon, and his father smoking a pipe in the front room vie for his attention on someone morning.
- Someone awaited someone at the door with a kiss, while he read the evening paper of foreign atrocities, and planned their lavish dinner and evening activities.
- Someone scavenged a lost rag-doll, then used it to con drinks at a saloon, while others feasted and celebrated nearby.
- Someone and someone dined at tables d'hôte, befriended a couple, and spent evenings dancing, with someone learning to drink and someone to drink more, all while living in a run-down someone.
=== D20
- Someone agonized over the menu changes, her tears reflecting the loss of someone, as dandelions, his favorite flower, appeared.
- Someone tells her daughter about someone’s death, revealing he had been painting a last ivy leaf before his fatal illness.
- The old farmhouse and its inhabitants greet someone with a chorus of voices, while his wife someone feels out of place amidst the rural reunion.
- Someone, ill and alone, clings to a single ivy leaf as a symbol of hope, while someone tries to comfort her, unaware that the leaf will soon fall with someone’s death.
- Someone, the elderly housekeeper, welcomed the visitor into her dilapidated home, revealing its history and her own simple dignity.
- Tiger" someone, the senior son of the house, prepares for work while his younger brothers sleep, unaware of the strike affecting his father's marble-cutting job.
- Bill recounts how someone waits at her old home, crocheting, watched over by her daughter someone, while the house remains unchanged.
- Someone, alone in his home, prepares a meal and contemplates his loneliness, remembering someone’s presence and realizing her importance to his happiness.
- Someone, distraught, tidied someone’s room, feeling a profound sense of loss as if she had truly vanished.
- Someone waits on her porch as night deepens, while her companion remains silent, their hands finally meeting in a moment of unspoken understanding.
=== D21
- Someone, haughty at first, invites someone to someone Island, setting up a social encounter where their initial differences are bridged by shared experiences.
- Someone, a rancher, confronts former friend someone, a businessman, over someone’s new urban manners and social status, leading to a bar encounter.
- Someone and someone, former chums now wage-earners in a cheap boarding-house, are introduced as a pair of modestly dressed ironers contrasting with their expensive accessories.
- A summer hotel's diverse crowd, from young artists and naval officers to fashionable young ladies and a famous milliner, eagerly sought someone’s attention, each hoping to secure her favor or arrange her departure.
- Abbot someone, now Brother someone, welcomed two travelers with a transformational appearance, causing them to react with perplexity and astonishment.
- The Honorable someone, seeking to impress, engages the reluctant someone in a lively conversation, transforming her into the center of attention as other politicians and acquaintances arrive.
- Someone, a successful "crook," meets someone at a café to secure a favor from someone, a legendary cow-puncher, before leaving for the West.
- Someone, a summer student, engages Reverend someone in a summer village, with someone’s charisma and unconventional behavior sparking their romance.
- Someone, a newcomer to the someone, navigates its exclusive social circle with tact, forming an acquaintance with someone.
- Someone, now a wealthy bachelor, revisits his old friend someone, a watchmaker turned outdoorsman, finding them as different as ever.
- Someone’s return to the engine-house sparked renewed interest from someone, who became a frequent visitor despite being kicked out, while someone’s son someone developed a fondness for someone.
- Tom, the youth, hailed someone at a country station, eager to catch up after years apart, while someone, cool and aloof, appeared, diminishing Tom's confidence.
- Someone, seeking amusement, pretends to be a common passenger while actually attending a rendezvous with a strikingly beautiful woman at someone Island.
- The old friends, now in their seventies, meet at the same restaurant to rekindle their twenty-year-old promise.
- Someone, seeking social advancement, meets someone at a boarding house, initially dismissing her but later noticing her striking appearance and demeanor.
- Someone, now a successful city official, confronts someone, now with a different facial feature, at a street corner, recalling past times.
- Old someone, with sharp eyes and a vast memory, welcomed someone, hinting at lucrative business deals while subtly reminding him of past dealings.
- Someone, seeking to impress the demurely grateful girl, suggests they dine together, recognizing her as a lady despite her plain attire.
- Someone’s arrival brought conflicting impressions—cold and lost ideals for someone, while someone offered warmth and hospitality, affecting him differently.
- Someone introduces her new beau, someone, to the Clover Leaf Club members, who judge him based on his physical prowess and social status.
=== D22
- Someone, desperate to win someone back, seduced her at her wedding before leaving with her soon-to-be-husband Frank.
- Someone, desperate for a date, pleads with his father for help in securing a romantic encounter with a woman, revealing his financial desperation and social constraints.
- Someone Pry, desperate for attention, coerces Violet someone into a bootblack stand with a promise of a private moment.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead.
- Parkenstacker opened the meeting with flattery, but the girl responded with icy disdain, challenging his assumptions and curiosity.
- The Kid seeks revenge on someone, now engaged to someone, by attending a dance with someone, infuriating someone.
- Someone, someone’s mother, and Sisters someone and someone engage in conversation while Tom and someone play on the porch, setting the stage for someone’s escalating confrontation with his father.
- Someone confronted someone, now free, two blocks away, while he struggled with his own desires and failed to understand her sudden liberation.
- Someone, seeking to add joy to her life, hesitates while her friend someone pressures her to go to someone Island, a decision someone doubts she can make.
- Someone demanded someone show her the engagement ring, while Aunt someone revealed someone and someone were engaged, infuriating someone.
- Rachel refused to be comforted as doctors and toy makers rushed to the Millionaire's mansion for the Child's rag doll, while someone promised a visit and urged everyone to show someone spirit.
- Someone interrogates someone about his previous love affair, pressing for details and motives in a tense power dynamic.
- Someone, cool in his authority, insists they leave while someone’s uncertain nature holds sway, hinting at her potential marriage proposal to someone’s friend.
- Someone, seeking comfort, lies to the girl, claiming he mistook her door for a piano tuner's, to keep her company despite his intention to leave.
- Someone and Violet argued over whether meeting was a mistake as they waited for the bootblack to finish their boots.
- Someone proposes a scheme to leave someone, pretending to flee with an understanding lover, while someone reluctantly agrees to hide in the dining room to observe her reaction.
- Someone confronts someone over his mother's invitation to visit the rural farm, hinting at potential conflict.
- Someone, seeking revenge for mistreatment by a man who has insulted the lady, agrees to help despite someone’s initial reluctance.
- Someone courts the anxious girl, while tensions rise as someone prepares to confront them.
- The girl, now visibly defeated, accepts Cork's confession of stabbing someone, revealing her naivety and acceptance of his criminal lifestyle.
- Frank, wounded and enraged, violently rejects someone, who flees the scene, leaving the audience to ponder their own fates.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone’s failed job applications and heartbreak led her to someone, who proposed marriage, prompting her to seek solace in the unlikely embrace of someone in the skylight room.
- Someone, the someone, confronts someone, offering him a last chance to escape his impending doom, while ignoring the narrator's presence.
- Minnie Brown, seeking validation for her trip, pressures the narrator into reading her a story to prevent her from returning home.
- The girl, seeking a meeting, confronts someone over his refusal to entertain her at his home, revealing her desperation and naivety.
- Someone, flaunting new clothes, pressures someone to join her for church, hinting at a secret plan, while he dodges her questions about an upcoming event.
- Someone, a delegate at the someone National Convention, meets a distressed woman and her companion, who request his help in a private room.
- General someone, someone’s ideal knight, looked away as she offered him jam, reminding her of his absence in someone.
- Someone attempts to court someone, but someone interrupts their moment by falling off a cliff.
- Brick someone warns someone about safety at their usual meeting spot, revealing someone’s absence and the need for caution.
- Someone, a lady in her late twenties, diplomatically turns down a man's romantic overtures while subtly arranging a clandestine meeting with him.
- Someone demands to go out, questioning his father's authority and criticizing his mother's explanations, while his father reluctantly agrees, hinting at someone’s mental state.
=== D23
- Someone, eager to profit, demands the artist paint a portrait of his wife based on a drawing, offering payment for the finished work.
- Someone, ill and dying, fantasizes about painting while her nurse someone nurses her, unaware of the doctor's grim prognosis for another patient.
- Someone demands a modeling session for a sick someone, while someone tries to manage the situation and hide her discomfort.
- Someone demanded someone produce a story, while someone dismissed someone’s complaints and painted vivid West Coast landscapes for the dinner guests.
- Someone, a young artist, sells his painting for $5,000 while Bill someone, a poet, recounts their past meals at someone’s, a restaurant where patrons often went unpaid, hinting at a history of financial dealings and possibly a power dynamic.
- Painter someone struggles with clients' anger and scandal after revealing hidden truths in his portraits.
- Someone urges someone to sleep while she calls him to model for her old hermit miner, a failed painter who drinks heavily and fears his own mortality.
- Someone reveals a portrait of someone to someone, who agrees to accompany her to someone next someone to help her cope with her grief.
- Someone, a wealthy patron, seeks someone, an artist, to critique a pastel sketch, wary of its artistic merit and fearing its value.
- In the mining camp of someone, Black Bill, the artist friend and author's hero, struggles to pay for a full-page illustration in a magazine, envied for his unique blend of cowboy and urban scenes.
- Someone demands half an hour from someone to demonstrate his theory of true-to-life fiction using someone, his wife, as an example.
=== D24
- A weary traveler haggles with a cab driver over fare, then seeks solace in a ritzy yet overpriced hotel, only to be disappointed by its slow service and overpriced food.
- Someone, with his wealth and charisma, commands the someone as he greets his lieutenants, who are intoxicated by his false camaraderie, while someone, now delirious, pledges his loyalty with a drunken gesture.
- The Preacher preaches to a crowd of miners, some of whom tipple, while someone, a former drunk, seeks shelter.
- Someone, drunk and confused, barges into the Millionaire’s home, demanding proper someone etiquette from servants and the host, someone, who reluctantly complies.
- The Earl of someone’s attentiveness to someone at the charity bazaar led to a public embarrassment when she fainted in his presence.
- Someone searched his pockets for money, finding none, as a man approached him, revealing he had only two pennies for dinner.
- The man in the basement invites travelers to his home for refreshments, offering hospitality despite his superstitious beliefs.
- Princes and queens, envying someone’s simple meal, watched as she boarded a cab, only to be met with a demand for payment.
- Caliphs control someone, exploiting beggars and paupers while hiding their own misdeeds, leading to a decline in storytelling.
- Someone, a businessman, offers a drink to indebted someone Woods, hinting at their unequal power dynamic and someone’s reluctance to arrest Woods.
- Seltzer's tribal gentlemen watch as someone and his wife someone enter, impressed but wary, while the guests enjoy a lively meal.
- Someone, burdened by a someone and a festival, sought solace in a glass of beer, while someone tried to cheer him up on someone.
- Someone skillfully steered someone’s lunch choices while someone expressed discontent over his lack of western experiences.
- Someone, now aware of newfound power, returns home to find someone preparing a lavish meal, greeting him with usual boisterousness but sensing something amiss.
- Someone, seeking warmth and security, planned to spend winter on the Island, avoiding charity and its indignities, instead opting for the law’s accommodations.
- The bartender accuses someone of being part of someone’s come-on squad, while someone tries to secure change for his valise containing rural clothes.
- The Captain demands food from his reluctant butler someone, who suggests they try a restaurant, despite their previous failure.
- The someone, hungry and boastful, demands food from the campers, who are initially wary but eventually welcome him, revealing someone’s wealth and beauty.
- Someone, once a prince, now a vagrant, sits with his uncle, a destitute Captain, on a bench in a forgotten park.
- Someone recounts her travels and observations of societal injustices, easing her visitor's discomfort with tea and cake.
- The Captain, soaked and disheveled, seeks advice from someone on how to avoid drinking the foul-smelling substance he found, revealing his desperate financial situation.
- Prince someone sat on a bench, envying the wealth and power he could wield but choosing instead to mingle with the poor and grant them unexpected largesse.
- Someone, desperate and drunk, seeks sympathy from a young ex-coachman at a makeshift army camp.
- Van someone, seeking to help, warmly grasped someone’s hand, offering friendship to a visibly downtrodden young man.
- Someone, seated on a park bench, entertains a vagrant who has just arrived, revealing his precarious financial situation and delusions of wealth.
- A troupe manager hosts a convivial gathering of retired performers in his caravanary, seeking engagements for the next season.
- Someone placates someone, a panhandling streetwalker, by taking him to lunch at a hotel, while secretly observing and possibly exploiting him.
- Someone demands courses from someone, viewing him as a potential Caliph to be entertained, while someone sees this as a common occurrence in New someone.
- Someone, desperate for his girl's recovery, searched the room for a means to revive her, offering her a feast of food and drink.
- Someone’s mother rents out furnished rooms to nouveau riche immigrants, including the flashy someone, in a run-down building where daily meals are often meager.
- Someone, despite being visibly ill from overeating, sat contemptuously observing others at a gathering.
- Hastings someone pityingly observes the ragged park visitors while plotting to improve their lot with wealth he does not possess.
- The foolish children gave their most prized possessions to each other while the magi, who brought gifts, held the wisdom of giving and receiving.
=== D25
- Someone, preparing for a matinée, consults her dresser about a potential evening engagement while someone, intrigued by her wealth, asks for advice on how to spend a thousand dollars.
- Caliph offers young man education and financial support for studies in exchange for future business arrangement.
- Someone, a young man engaged to a parlor maid, seeks to impress a wealthy man by visiting his house, offering investment advice, and introducing himself to the man's daughter.
- Someone, now wealthy, seeks advice on what to do with a thousand dollars after inheriting a fortune from his deceased uncle's legal firm, which includes a bequest to a microbe and a ward, leaving him perplexed about his newfound wealth.
- Someone, worried about money and health, persuades someone to sleep near him in the Square, while someone offers to help secure a job reference for someone.
- Someone, with $140 in his pocket, sat on a bench in someone Square, amused by an old man begging for a dollar, sparking a conversation about work and the world's potential for wealth.
- The young man seeks financial advice from the someone, a noble, in exchange for solving a riddle about his mundane job at someone’s shop.
- The poet seeks advice from someone about his failed ties and unfulfilled prophecy, while a newsboy offers practical advice about buying a birthday present for someone.
- Someone proposes to the first white apron he sees, while someone and someone scheme to buy a someone cottage with their ill-gotten gains.
- Silver and someone pool their capital to secure an introduction to someone.
- Someone, a customer at the someone hotel, negotiates payment for a dress with someone, a hotel employee, while discussing a weekend trip to someone Island.
- The young man seeks advice on choosing between two wealthy suitors, while the girl, of a higher social class, considers his appeal despite her own preferences.
- Young men at someone’s diner exchanged witty banter for cash, with older men offering more personal favors to curry favor.
- Someone wants a purple dress for someone, but Grace prefers red, and they debate the merits of each color.
- Old Tom someone, now a caliph with $42 million, seeks new thrills beyond clubs and dinners, craving experiences money can’t buy.
- Old someone flaunted his wealth and moralizing skills, offering someone various uses for a thousand dollars, to which someone responded with frustration and a desire to spend it impulsively.
- Someone, the Secretary of War, invites someone, an artist, to a meeting at someone’s to discuss a lucrative arms deal, while someone seeks to elevate himself to someone’s social and professional status.
- Someone, millionaire, felt both flattered and awkward as he encountered someone, a shopgirl, in a glove shop, realizing he had no social means to propose to her.
- A young man and a girl wait impatiently for a fairy to grant them a moment from their wedding day, while a megaphone man preaches about millionaires.
- Someone, a lodger, spends lavishly on personal items and meals, defying her modest rent by overspending on luxury goods and dining out frequently.
- Prince someone, hereditary ruler of someone, offers a young man wealth and a palace on the condition he never has a clock in his possession.
- Someone complains about someone’s lack of practice and monotonous white dress, while someone flaunts his gambling winnings to someone.
- Someone, a wealthy young man, debates the merits of spending money with his friends, acknowledging its power but also its limitations in social circles.
- Someone overhears professors discussing a student's plan to purchase a sleeping powder, leading him to question the value of philanthropy and seek his own charitable solution.
=== D26
- Someone insists on accompanying General someone to someone, a "someone joint," to verify the latter's secret mission for arms in the someone revolution.
- General someone pitches a gun deal to the General, promising insider connections and influence, but the General remains skeptical and dismissive.
- Buck someone, someone, and Brick someone engage in a naval battle at someone’s, with Buck orchestrating the fight, someone infiltrating stealthily, and someone disrupting communications, leading to chaos and injury.
- Major someone, newly arrived, confronted General someone’s forces in a fierce battle while someone admired newly installed, untouched brass urinals in the lobby.
- Someone, hose-cart driver of Engine Company No. 99, spent his days obsessively mapping World War someone battles, while his comrades viewed him as a fervent someone supporter during peacetime.
- Someone charged into the room of single combat, seizing someone’s stiletto as he lunged, while the Board stood frozen, unsure of what to do.
- Major someone prowled the hotel lobby like a rabid dog, his smooth-shaven face aglow with a predatory hunger, while the narrator, a someone, watched warily from a safe distance.
- The General, cornered by street chaos and threatened by two hunters, finds unexpected help from Spider someone, who offers assistance and friendship.
- The Caliph someone al-Rashid and someone von someone vie for control of Fourth Avenue, a forgotten street that symbolizes the clash between old-world relics and modern decay.
- The captain and his dozen men, led by the Kid, raided a dark building, encountering a heated game of chance and a rival gang, before capturing the premises.
- The General commands a column while someone, visibly uncomfortable, feigns interest in the General's political musings and culinary inquiries.
- Generals and someone queued for hours to try the potent drink, which became a symbol of national pride and defiance.
- General someone seeks weapons for his revolution in someone, but the Secretary of War in the United someone refuses due to political differences, requiring everything to be kept secret.
=== D27
- Someone watches as society buds and bon vivants admire his company, while he eagerly anticipates his return to his usual upscale dining.
- Prince someone paced the park, his shoes worn, as he considered his options for funding his decrepit wardrobe and neglected estate.
- Someone revels in unrestrained freedom, only to discover convention holds the true key to liberty.
- André, once a someone waiter, transformed his restaurant into a bizarre spectacle, attracting someone who flocked to see him as the Grand someone of someone, until he reinvented his establishment as a high-end dining experience for wealthy patrons.
- Someone, reluctant to leave his job, is pressured by someone and someone to resign, but insists he has found his true calling and will remain.
- Towers someone, seeking to impress someone, prated about superficial interests while secretly hoping to reveal his actual, albeit mundane, work life.
- Someone, seeking advancement, navigates the social hierarchy of a fashionable salon while secretly preparing for a potential shift in values.
- Big someone coveted social acceptance from the titled nobility of someone’s sport world.
- Grace insists on purple for her dress, sparking a disagreement with someone, who believes purple is just as valid a choice as any other color.
- Someone, now retired, watches his vast fortune accumulate through his private secretary, while he builds a palace and seeks spiritual guidance amidst his wealth.
- Someone’s confident whistling made someone eager to secure his affections, as he offered practical benefits and hinted at future financial stability.
- Someone, seeking advancement, pressures his subordinate for favors while maintaining a facade of eccentricity and subtly threatening blackmail.
- Someone, confident and well-groomed, seeks success at a high-end restaurant but is turned away due to his shabby attire, forcing him to reconsider his path to success.
- Someone checked into a New someone hotel, feeling invigorated and eager to start a new life as a someone delegate to the someone Convention.
- Someone critiques someone’s outdated clothing, prompting a competitive game of high-stakes clothing swaps between them.
=== D28
- Someone, a schoolteacher, seeks the wisdom of her former students to understand the complex vocal messages of a bustling city.
- Bill, in the role of someone, seeks a poetic description of New someone’s soul from someone, someone, someone, May, and someone, hinting at a symposium to capture the city's multifaceted voice.
- I must find the Voice of New someone, but first I seek out someone, the best bartender, to learn the city's unique ways.
- Reader demands a paraphrase of a few words written by him at Gad's Hill, but finds them lost in the face of daily lost associations and lost reformers.
- The critic and narrator debate classifying the "Man About Town," a nocturnal figure influencing their city, with the narrator eager to meet and study him firsthand.
- Someone boasts of his global wanderings, yet his speech reveals a longing for his home and roots.
- Bill Summers, a newcomer to town, ingratiates himself at someone’s table with exaggerated nostalgia and gossip.
- I want to know what the city says, but someone thinks it repeats what someone says.
- Someone, someone Van someone, and someone discussed philanthropic efforts in a lower east side auto.
- Someone, a poet who lived his verse, wandered the country, studying cities as women, seeking their essences and souls.
- Someone lectures someone on his New someone lifestyle, criticizing his behavior and comfort, while someone defends his choices in the city.
- Monty and someone discuss their experiences and fears in New someone, a city that intimidates newcomers and offers opportunities for financial gain.
=== D29
- Someone seeks to confront an invisible maniac, while I caution him and arrange for his return home with the someone.
- Bill someone’s loss of a 'possum dog to a someone squirrel rifle sparked a forty-year feud between the someone families.
- Someone and someone debate the loss of their lost son someone, comparing him to their deceased child someone, while below a maid searches for a missing six-year-old boy.
- Someone, seeking money left by his uncle, confronts someone, a blind man, and lawyer someone in a cab, revealing a secret amendment to the will.
- He demanded information about a missing young girl from the room's housekeeper, who evasively denied knowing her.
- Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity.
- Tom someone and someone searched the inaccessible someone monastery for someone, intrigued by rumors of an ancient, untraceable someone.
- Someone, the insurance investigator, returned with news of someone’s lost boy, igniting a chain of reactions as neighbors and passersby offer help or express concern.
- Doctor someone carried the injured astronomer home, while someone crumbled in his wake, her curiosity about his words unfulfilled.
- Detective Woods confronts someone, now a newspaper salesman, suspecting someone’s involvement in the murder of millionaire someone.
- Old someone, manufacturer and soap tycoon, confronts his son someone over household expenses, revealing his scrutiny of the family's lifestyle.
- Someone Ray barged into someone’s home, seeking information about her whereabouts and eager to catch up, despite their professional separation.
- Someone, enraged by an owl attack, confronts an elegant stranger in his home, revealing he nearly solved a mystery involving the Van someone family.
- Someone, seeking answers, confronts an enigmatic someone who offers him a card, leading to further mysteries and adventures.
- Someone’s father, a retired fur cutter, seeks help from someone after being run down by a reckless driver, leading to a power dynamic between the grieving daughter and the business owner.
- The editor demands information from the mysterious caller about the murder of Old someone, suspecting the caller is a fraud but intrigued enough to continue the conversation.
- Someone investigates a murder, revealing details to Woods, who threatens to arrest him, while a woman watches from her bed.
- Someone Pry, an expert at such gatherings, stood over a man injured in a brewery accident, while Violet someone, driven by intense emotion, pushed through the crowd to get closer.
- Someone searches frantically for her missing son someone, while neighbors offer help and concern in the face of a child's disappearance.
=== D30
- Someone, the girl, challenges Cop someone’s authority over her man, someone, with accusations and money, while someone tries to assert his power.
- Someone, angered by the caliph's insolence, challenged him to a fight, leading to a brawl and arrest involving multiple characters.
- Someone confronts someone, a policeman, over a damaged horse, while someone threatens retribution and invites someone to a social event.
- The policeman, seeking to assert his authority, confronts someone, now a stranger, while someone waits anxiously for his friend.
- Someone and someone engage in a culinary duel, interrupted by a loud scream from their home, causing them to pause briefly in a standoff, while Policeman someone overhears and decides not to intervene.
- Someone smashed a shop window, prompting a chase and confrontation with a policeman, who instead sought out the culprit, leading to someone’s patronizing visit to a cheap restaurant.
- Someone confronts someone, a former foe, in the chaotic street scene, their long-standing feud temporarily set aside.
- Someone demands answers and a cigar, while Lawyer someone holds power over someone’s estate and schedules.
- Policeman someone overhears someone’s domestic dispute, estimating the duration and escalating violence.
- Someone’s men confront a cop in a dimly lit room, escalating from a casual encounter to a tense confrontation over a missing man.
- The Secretary demands action on urgent matters, leading to conflicting priorities and social interactions among military and diplomatic personnel.
- The policeman, vigilant and observant, encounters a man waiting outside a demolished restaurant, challenging the officer's knowledge of the area's history.
- Cork coerces his girlfriend into a clandestine rendezvous at a known criminal's house, leading to a tense confrontation with the police.
- The cop, tasked with maintaining order, confronts a young man who questions the cop's role and civic duty, leading to a conversation about the city's unrest and the cop's mundane nightly duties.
- Someone and Violet, creatures of habit, joined the mob to watch their wedding, but returned as a crushed, hysterical woman and two policemen.
=== D31
- Someone assigns someone to try on coats and hats, while behind the scenes, he arranges a dinner reservation for himself.
- Someone, with a dime in his pocket, joins a dinner party invited by four people, who surround and envelop him, while a fifth man with an umbrella watches from the crowd.
- Someone proposes a lavish dinner at a hotel, betting on who can withstand the establishment's displeasure, while someone eagerly accepts the challenge.
- Someone, a someone head-waiter, proposes to someone, a New someone, after impressing her with his culinary skills.
- Someone and someone engage in a card game over dinner, with someone winning and planning to use a pretext to escape.
- Someone demands payment from someone, who reveals he owns the hotel and offers to make his rooms ready, complicating the dinner party arrangement.
- The fare and someone, the cabdriver, negotiate a ride to the Casino where the fare experiences a night of entertainment and revelry.
- Gladiators someone and someone spar, each vying for supremacy in their boxing match.
- Someone pressures Con and someone to drink more alcohol to continue their failed experiment, leading to a fight in the bar.
- Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses.
- Someone and someone climbed Chimney Rock to crown someone queen, a frivolous contest with no stakes but youthful pride.
- Someone poses, someone bites her lips, someone checks his coat, someone watches the clock as nine approaches, and the dinner party's humor escalates with each course.
- Con someone works the bar while Con dances for the elect, a saloon where teetotalers seek refuge in a slot restaurant.
- The someone family throws a noisy wedding party, drawing curious neighbors and someone’s cab to the sidewalk outside someone.
- Tom accepted an invitation to a wrestling match with a lawyer, leading to a chaotic evening of physical contests and drunken revelry.
- Someone challenged someone with insults and culinary provocations, escalating their domestic feud.
- Con returns to the back room after drinking a mysterious golden liquid, finding someone upstairs and preparing to propose marriage.
- Someone invites someone to dine with him, setting a someone evening at seven for a potential romantic engagement.
- The Grand Duke and someone demand deference from someone, who works as a cashier at a restaurant, as he declines their invitation to a masked ball.
- Someone and someone Green debate the benefits and drawbacks of attending a municipal free night outing lawn party, while I explain it as a community event to avoid the crowded North Beach fish fry.
- Madam, the someone challenges someone to eat the roses he brought someone as a salad, while someone must write the cards despite her fainting spell.
- The young man and Bill compete to solve a riddle to win a place at a wealthy woman's daughter's birthday party, with the stakes including marriage to the woman.
=== D32
- The old man seeks his son someone, believing him to be a heavy-set man in his late twenties, while someone, annoyed, tries to redirect him to the Bishop of Long Island's dinner.
- Towers someone, a man seeking a meal and a conversation, pressures a young woman into accompanying him, citing her injured ankle as a pretext, while secretly planning a romantic dinner.
- Old ladies at a red brick mansion on Fifth Avenue serve lunch to a passing vagrant, unaware a stern old man is approaching.
- Someone, a young man, eagerly awaits a date with a street-corner shopgirl, while his mother chauffeurs him to a fancy restaurant.
- The Old Gentleman, living alone, feeds someone, a servant, who sees their relationship as someone’s entitlement to the Old Gentleman's someone feast.
- Someone, fearing abandonment, sought connection but found only isolation, prompting him to beg for acknowledgment from a passing fat man.
- A man, forty and harassed, boasts about New someone’s comforts to a fat companion seeking outdoor adventures.
- Someone, looking imposing, invites a young man to join him at a someone table in a glittering part of someone.
- Big someone" someone reluctantly agreed to go out for dinner after his wife insisted, challenging his usual reluctance to leave the house.
- Someone, the suitor, pressures and then coddles someone, the hungry woman, during their meal.
- My friend invites me to a restaurant, hinting at a Man About Town, while I seek out my own social circle instead.
- The Old Gentleman coerces someone into a someone dinner, hinting someone lacks a male heir to carry on the tradition.
- Big someone" attends social gatherings with his fellow someone, avoiding his wife at home.
- The Old Gentleman hosts an annual someone feast for his protégé someone, a tradition recognized by staff.
- Every someone Day for nine years, the Old Gentleman found someone on his bench and took him to a restaurant for a big dinner.
=== D33
- Someone apologizes to someone for a drunken incident, but she rejects his apology, choosing to remain distant and resentful.
- Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature.
- Someone, fearing her impending marriage to someone, confesses her deception involving a fake engagement to a deceased Count, while someone remains skeptical and forgiving.
- Grace, now a rainbow, insists on wearing her new dress despite someone’s unfinished garment and refusal to attend the dinner.
- Someone, limping from an accident, accepted someone’s dinner invitation, revealing her true identity as a socialite to gain his attention.
- Someone proposes postponing dinner indefinitely, revealing he is leaving for a world voyage to escape uncertainty, while someone expresses skepticism and hints at his own secret marriage.
- Someone and someone discuss their impending departures while reminiscing about their stay at the Hotel someone.
- Lucy refused to reveal her past as an actress to her friend someone, fearing scandal, yet admitted to her happy life in the village until someone’s gossip revealed someone’s past love affair.
- Someone, Lady, and someone engage in formal social rituals while someone explains something to someone, revealing someone’s disabilities momentarily vanish.
- Someone proposed to someone, who initially laughed but then accepted, revealing they had secretly married the night before.
- Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
- Someone confronts his alcoholism, forced to admit it to his drinking buddies, initiating a painful homecoming where he must reconcile his public persona with his private struggles.
- A woman accuses someone of not recognizing her, leading to a tense yet intimate dinner where she reveals she remembers him from a past relationship.
- Someone, exonerated by someone’s confession, reflects on his past queerness while someone accuses him of foolishly not taking what he wanted.
- Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story.
=== D34
- Someone and the shy one huddled together, while someone and someone worked in secret, risking their venture in someone.
- Someone, a timid pharmacist, secretly desires Rosy, someone Riddle's daughter, while someone, a customer and friend, also pursues her, complicating someone’s situation.
- The girl in the tan jacket and someone exchanged secrets as other passengers watched, with the girl holding power over her companion.
- The Kid someone, a former outlaw, now works as a plumber but is suspected of selling stolen furs, leading to a confrontation with detective Ransom.
- Someone, seeking revenge, offers a drink to someone, while someone, a child, watches them from the street.
- Someone thanks someone for saving his daughter's life, requesting the doctor treat her further and threatening to reveal his daughter's flirtatious note to him.
- The police held the “Stovepipe” gang in suspicion, while someone’s love for “Kid” someone threatened to undermine their criminal enterprise.
- Someone plots to elope with Rosy, bribing someone to poison her, while someone informs someone Riddle, who will ambush them.
- Someone, eager for the sables, outmaneuvers Ma someone to keep them, while the Kid, proud of his acquisition, tries to placate her.
- Someone, the night clerk at the Blue Light, advised customers on medicine while the store overlooked children playing on the street.
- Someone schemes to bribe Rosy with a rumored love potion to prevent her from leaving Old Man Riddle.
- Someone flatters and flirts with the actress, securing a role while her companions and rival, Summers, are left in the dark.
- Someone proposes to someone’s daughter someone, revealing he receives romantic favors in exchange for information about her whereabouts.
- Someone, the café owner's daughter, orders drinks and demands information about her fiancé's infidelity, showing her power and control over the waiter.
- Someone, charming and at ease in a café, withheld crucial information from her companions, raising suspicions about her true intentions.
- Someone waits for news of Rosy's escape while someone informs him she made it, causing someone to question the efficacy of the powder.
- Someone, uncertain about his fiancé's wedding plans, pressures someone to find a drug to ensure Rosy's attendance, while secretly preparing for their elopement.
- Someone swindles a child, then feigns delight at a waiter's incorrect guess about easy marks, before ordering expensive wine and dessert.
- Someone, a plain-looking but lovable girl, falls for the grocer's young man, unaware he is preoccupied with his horse, while he courts a more desirable young lady elsewhere.
- Someone and the Kid parade down the street, their wealth and status attracting curious glances from the Stovepipe Gang, while Detective Ransom watches from behind them.
- Someone juggled urgent business calls and frantic office tasks while Pitcher waited for promised samples, each hoping their day wouldn’t be as chaotic as the broker’s.
- Someone manipulated a child to buy medicine, using his position to exploit the boy's trust and pocket the excess money.
- Pitcher, confidential clerk in someone’s office, shows mild interest and surprise as someone’s young lady stenographer arrives with a question about future employment.
- The Kid seeks employment, while the Captain of Police considers helping him infiltrate gambling den someone’s, despite previous conflicts.
=== D35
- Someone and Violet, true someone, lingered after the crowd, gazing at each other's blemishes and physical features.
- Someone calculated someone’s distance, eyeing her as a potential victim for his planned blackmail.
- Someone, the model, dazzled a hesitant buyer with her professional poise and someone’s encouragement, while her own thoughts turned to her dinner date with the buyer's wife-to-be.
- The conductor assigned seats as the someone Auto's top-riders, including someone from someone and his bride, prepared for the start of their sightseeing tour, while curious onlookers blocked the sidewalk.
- Someone, entranced by a beautiful young lady in a motor car, watches as she passes by, hoping to catch her attention, while someone attends a Gentle Riders reunion.
- Someone and someone anxiously watched the monk procession, recognizing someone among the unfamiliar faces.
- Someone’s lodger, someone, engages in secretive activities, while someone and someone debate his identity and background.
- Cork someone, bored in someone’s, strikes up a conversation with a mysterious girl who decides his fate with a glance.
- Someone’s engagement to someone put someone in a position of curiosity and suspicion, as he remained distant and secretive despite their intimate park bench meetings.
- Someone gazed at the unchanged room, recalling his past with Lady, while someone announced her upcoming marriage.
- Someone and someone’s friendship shifted as someone accepted a date with a new suitor, leaving someone feeling sidelined and envious.
- Big someone, unsure of his new wife's identity, decided to flaunt her at his usual haunts to impress his social circle.
- Someone prowls the deck, suspicious of passengers, while someone observes, hinting at a potential encounter with a mysterious crooked-nosed man.
- Someone, torn between her past suitors and the mysterious stranger, struggles to decide whom to forgive and love.
- Someone, a man from someone, sought to impress and win over Lady someone with his sincerity, despite her initial skepticism.
- Someone and Violet's wedding approached, drawing a boisterous congregation of someone to the Big Church.
- Someone, unsure of her next move, hesitates as her landlady informs her of a gentleman caller, while secretly admiring her appearance in a mirror and contemplating her social status.
- Someone, a servant, nervously awaits someone choice of a dubious guest for dinner.
- He searched the room for her, finding only objects, while she remained invisible, tantalizing him with scent.
- Someone, a wealthy visitor, hesitates as floorwalker someone confronts him with a shopgirl smile, unaware of the flirtatious nature of his profession.
- Lodger No. 2, a charming but mysterious man, seduces someone with tales and innuendo, leading her to believe her husband has returned, despite his long absence.
- The man upstairs played music to mask the couple's quarrel, while someone prepared to read, unaware her landlady had already answered the unexpected visitor.
- Someone persistently courted someone, while she temporized, unaware a date was imminent.
- Someone silently returned to the table, casting suspicious glances at someone, who had cut out drinking, while he tried to maintain the evening's conversation.
- Someone, newlyweds, attempts to impress his bride-to-be someone with his good looks and worldly wisdom.
- Someone leaves for the hotel, while a young woman waits at the corner, unaware of someone’s dark thoughts.
- Someone ascended to her room, passing someone who was performing a trick, unaware of her presence, and he was unprepared for her judgment.
- Someone, the poet, schemes to meet the mysterious woman who he believes has returned to him, while someone, the businessman, arrives early for his date, frustrating someone’s plans.
=== D36
- Someone Cherry, nervous about her performance, accidentally killed someone during a gunshot, leading to a comedic and chaotic aftermath.
- Someone confronts the managing editor of the _Morning someone over its coverage of the someone murder case.
- Someone, the artist, dismissively lists the contents of a magazine he considers dead, infuriating his clerk friend someone Brown.
- Uncle someone, a faded carriage proprietor, attempts to lure customers with low fares, while a crowd gathers outside a drug store for the funeral of Major someone, a former soldier whose death is met with polite but unsuitable tributes.
- Girls prepare for a black dress funeral gala, while someone feigns interest to gain insight into someone’s grief.
- The reporter, seeking a light-hearted column, botches a funeral story, prompting a friend to craft a humorous take on the mishap.
=== D37
- A cigar store owner confronts someone over a stolen umbrella, escalating into a confrontation with a passing policeman.
- Someone, without an umbrella, pleaded for someone’s company as he blocked her path in the rain.
- Lawyer someone demands someone sign documents and discuss family property, while someone resists, preferring to avoid the unpleasant task.
- The argument between someone and the red-haired, unshaven man over someone’s street playtime escalates into a competitive betting scenario at a saloon.
- Someone and Brick someone observe cautious etiquette at someone’s bar while tensions rise between rival gangs on the lower East Side.
- The man confronts the Park someone about illegal park users, sparking a conversation about public space usage and social norms.
- Ileana refused to lodge a complaint, but demanded more excitement from the quiet town clerk, who offered a show next someone.
- Someone confronts an someone who rejects his card, displaying a look of disdain that accuses him of inadequacy.
- Someone regains composure, demands someone leave, and challenges the lawyer, while someone faints.
- The driver demands extra payment, leading to a heated argument between him and the passenger over fare.
- Someone refuses someone entrance to the White Lane, leading to a heated confrontation with someone over someone’s questionable behavior.
- Someone, seeking groceries, confronts someone over payment, escalating into a physical altercation in the store.
- Old someone, a reluctant churchgoer, pays for drinks with money offered to a church, which someone, the proprietor, refuses, leading to a confrontation with a beggar woman.
- Someone confronts a racist encounter at the pier, leading to a series of misfortunes and further social strife on the boat.
- Someone, annoyed, refuses to hire a new stenographer, dismissing Pitcher for disregarding his previous instructions.
- Someone, prompted by the Lady, stammers and drinks, someone escorts him away while Black someone waits outside, unsure of someone’s future.
- Someone demands someone attend to business matters, while someone and someone argue over her drinking habits, leading to a moment of vulnerability in someone’s park.
- Someone leads a group to escort someone away, while someone fears someone cannot stop a fight with the Board of Rules.
=== D38
- Someone, a mysterious outsider, seeks to understand the great city of someone, but finds himself overwhelmed by its complexity and aloofness.
- Someone feels isolated and alienated in a soulless city where people are superficial, self-absorbed, and indifferent to each other.
- Chicagoans and someone vie for bragging rights, each claiming their city's unique charm and history.
- Someone, a poet, feels isolated and ignored in someone, finding no common ground with its inhabitants.
- Someone and someone, former friends from the West, compete to become either New someone or outcasts in the battle against the City.
- Someone the someone’s theater district caters to a volatile someone immigrant colony seeking political refuge and resources.
- Someone and the Captain, now a saloon-keeper, meet in the city's downtrodden core, both seeking scraps from the moral cataclysms that have reduced them to this social abyss.
- Someone, the mythic someone, is summoned by Down South's community to address any acts of foolishness, held in awe despite his nonexistence.
- The someone residents struggle to maintain social order in the dark, resorting to makeshift solutions and alliances to survive the night.
- Someone resists the writer's attempts to elevate his experience of New someone, preferring the city's bohemian haunts over literary pursuits.
- Someone kindly invites young squire to share secrets of his strange behavior in crowded city, sensing deeper motives beneath surface.
- The someone, a curious tribe of New someone, gather eagerly around any unusual incident, showing no preference for the nature of the event or the people involved.
- Someone’s rise to prominence in the city led to his assimilation into its social elite, yet he remained an outsider in its heart.
- Someone boasts of his superior knowledge of New someone at the expense of his friend someone, now reduced to living in "someone.
- Someone watched the city below through his window, captivated by its lights and secrets, while his desire for someone threatened to overwhelm his resolve.
- Someone, leader of the association, held power over its members, who feared him but also admired his athletic prowess and social connections.
=== D39
- The Prince attempts to persuade the young man to abandon his job as a clockmaker, a private affair, but the young man resists, eyeing a nearby house.
- The young man, someone, seeks to understand the upper class while the girl, offended by his ignorance, tries to educate him.
- The young man demands explanation of the narrator's actions, while the narrator refuses, citing her own observations and ideals.
- Someone, seeking romance or distress to aid, encounters a young man throwing coins into the street, drawing a crowd and halting traffic.
- The dark-haired young man, likely a someone, challenges the someone social order by loudly interrupting the narrator's attempt to gather information about his origins.
- The young man eagerly retrieves the girl's dropped book, risking a conversation to gain her favor in the quiet park.
- The young man implores the lady to reconsider his actions, while a streetwise boy delivers a direct challenge to the young man's message.
- The young man confronts the lady, demanding she read a letter explaining his situation, while she accuses him of trying to manipulate her with false stories.
- Someone, smug after a romantic encounter, confronts a young man who had been flirting with a lady he desires.
- The young lady demands a song and dance from the boy, warning him of consequences if he does not comply, while secretly intrigued by his unconventional message.
- Prince someone, seeking to aid a troubled young man, confronts him at a bench, revealing his identity and offering his assistance despite the young man's apparent distress.
- The someone seeks help in solving a riddle about the longest-laying hen, while the young man dismisses it as trivial and refuses to assist.
- The someone commands the young man to leave with him, seeking to understand his distress over a painful dental procedure.
- The young man impatiently defies Prince someone, who insists he remain, revealing a past affair with a woman he wronged, seeking forgiveness and understanding.
- The young man hesitates over a book left on the sidewalk, then decides to join a club with the chauffeur.
- The young man trails the girl through the park, shadowing her movements to the restaurant, where he waits for her to exit.
- The young man pursues the young lady through the park, hoping she notices him, while her obliviousness frustrates and intrigues him.
- The young man demands time to consider the woman's ultimatum, while she watches the clock for a signal of forgiveness or rejection.
- Someone seeks a song book for a friend in a shop, sparking a confrontation with a red-haired young woman.
- Someone, a young man, confronts the Preacher over unpaid debts while his lover someone arrives, revealing she saw someone at a fortune teller's.
=== D40
- Someone disputes someone’s claim of spring, while someone’s habitual morning observation reveals unease and distraction.
- Editor someone at length yielded, though but half willingly, as two experimenters in Art left the Square and hurried eastward.
- In the city, lovers and wanderers seek each other, but most choose dull routines over thrilling adventures.
- Someone observes the city through trees while someone awaits news of his dismissal from someone’s company.
- Gods observe cities from ’Lympus, noting New someone’s vast population, which intrigues mortals who seek to understand its unique characteristics.
- A critic observes a man-about-town who frequents seedy bars and nightclubs, seeking new experiences, while a churchgoer donates to charity, unaware of their shared city.
- Someone complains about fitting in at his job in someone, while someone expresses dissatisfaction with the town's lack of excitement.
- Someone, a typist in the city, visits old Farmer someone Farm to court his son someone, a modern farmer, only to find her plans disrupted by work duties.
- Tiger someone, skeptical of spring's arrival, seeks tangible signs while someone, his father, contemplates his own changeable desires in a saloon, leaving mutability of desires to his son.
- Someone moved uneasily on his bench as someone Frost’s card fell in his lap, hinting winter was near and he prepared for a three-month respite from cold and threats.
- Someone, a someone, accuses someone of neglecting his civic duties, while someone dismisses spring as lacking, sparking a disagreement.
- The city editor reads news from across the country while the farmer sees only winter on his fields, unaware that someone’s search for someone signals the arrival of spring.
- Cries of newsboys pierce the early morning silence as rich and poor alike anticipate the day's fortunes and misfortunes in the bustling city.
- Someone sat in her shivering room, while the almanac lied about spring, and the city's hand-organs played "In the Good Old Summertime.
- Merchants and hoteliers seek relief from unbearable heat, while the city's vulnerable struggle to survive.
+617
View File
@@ -0,0 +1,617 @@
=== R001
- Caliphs control someone, exploiting beggars and paupers while hiding their own misdeeds, leading to a decline in storytelling.
- Someone demands repayment and compensation for all losses incurred by someone’s bakery failure, escalating from $1,000 to $100,000, as a test of someone’s Socialistic beliefs.
- Someone confronts someone Sharp and someone, his executors, over the interpretation of a codicil to his uncle's will, threatening to expose their handling of a $1,000 bequest.
- Uncle someone extorted money from someone through false promises and coercion, while the doctor exploited her financially and emotionally.
- Caliph someone, desperate to assuage his guilt over his wealth, made numerous charitable donations and bribes, but his heart remained troubled, leading to conflicts with his staff and legal troubles.
- Someone, now wealthy, seeks advice on what to do with a thousand dollars after inheriting a fortune from his deceased uncle's legal firm, which includes a bequest to a microbe and a ward, leaving him perplexed about his newfound wealth.
- Old someone, now caliph, seeks to square a ten thousand dollar debt by any means, while his backstory hints at a transformation from a coal mine breaker boy to a wealthy magnate.
- Old Tom someone, now a caliph with $42 million, seeks new thrills beyond clubs and dinners, craving experiences money can’t buy.
- Someone, seeking money left by his uncle, confronts someone, a blind man, and lawyer someone in a cab, revealing a secret amendment to the will.
- Someone, seeking to repay his father's ill-gotten wealth, consults someone, who explains the futility of restitution to the robbed.
- Someone challenges someone over her inheritance from Uncle someone, a paltry $20,000 annually, insisting she wants more than financial security.
- Someone, a panhandler, seeks financial advice from someone, a former high-flyer now destitute, as someone, his wealthy uncle, offers him a comeback.
- Lawyer someone demands an account of Young someone’s expenditure of $1,000 inherited from his uncle's will, setting off a chain of events involving Old someone.
=== R002
- Someone, the poet, schemes to meet the mysterious woman who he believes has returned to him, while someone, the businessman, arrives early for his date, frustrating someone’s plans.
- Someone seeks work, faces a conflicted decision as a mysterious job offer pits her against a stern, threatening figure.
- Someone recounts his failed adventures, lamenting the predictability of modern life, while someone agrees, feeling cheated by the lack of unpredictable outcomes.
- Someone, skeptical of someone’s explanations, questions the scale of the building and their height, while someone tries to reassure her with philosophical observations.
- Someone von someone seeks to outwit Bill someone and someone by guessing the riddle, while someone, the harness maker, tries to stump them with the same puzzle.
- Someone, worried about money and health, persuades someone to sleep near him in the Square, while someone offers to help secure a job reference for someone.
- Someone seeks a fortune teller, someone, to uncover the truth about his love interest someone, while revealing his own misfortunes and impending troubles.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- The someone seeks help in solving a riddle about the longest-laying hen, while the young man dismisses it as trivial and refuses to assist.
- Someone prowls the deck, suspicious of passengers, while someone observes, hinting at a potential encounter with a mysterious crooked-nosed man.
- A mathematician and a businessman debate the nature of reality, with the former questioning the latter's assumptions.
- Someone demands a voyage, accuses the narrator of forgetting prophecies, and questions the narrator's judgment over trifling misfortunes.
- The poet seeks advice from someone about his failed ties and unfulfilled prophecy, while a newsboy offers practical advice about buying a birthday present for someone.
- The Man from someone tries to win over someone, a fellow passenger on a train, with promises of shared gambling and reminiscing about mining, while she remains skeptical and distracted by her own thoughts.
- The man seeks someone’s advice on fortune-telling, believing him to be a source of good luck, while I, a friend of someone, tries to convince him otherwise.
- The philosopher attempts to impress someone with grandiose ideas, but she remains skeptical of his lofty musings about the universe.
- Someone, seeking revenge, confides in someone about a drunken dream involving a mysterious automobile ride, while someone dismisses the tale as nonsense.
- The young man demands explanation of the narrator's actions, while the narrator refuses, citing her own observations and ideals.
- The twenty-year-old gambler seeks information from Old someone, the proprietor, only to be met with condescending explanations and eventually surrounded by various social climbers.
- The editor demands information from the mysterious caller about the murder of Old someone, suspecting the caller is a fraud but intrigued enough to continue the conversation.
- Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions.
- Someone tries to explain a complex fortune-telling scenario to a man, who then dismisses them both as suspicious and untrustworthy.
- Someone, a piano salesman, repeatedly accepts cards from a mysterious someone, each bearing the same cryptic message "The Green Door," leading him on an increasingly suspicious quest.
- Someone, seeking answers, confronts an enigmatic someone who offers him a card, leading to further mysteries and adventures.
- Someone, the someone, confronts someone, offering him a last chance to escape his impending doom, while ignoring the narrator's presence.
- Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity.
- The young man seeks financial advice from the someone, a noble, in exchange for solving a riddle about his mundane job at someone’s shop.
- Someone, desperate and ambitious, schemes to escape his current plight but is confronted by a policeman, revealing his criminal activities.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- Someone seeks information about dismissed police captain someone, suspecting him of wrongdoing, while someone avoids him, believing someone is merely a curious citizen.
=== R003
- Someone forces someone back to the bench, while someone, fearing for his life, begs for reassurance as he panics over potential misfortunes that could prevent him from receiving his inheritance.
- Someone regains composure, demands someone leave, and challenges the lawyer, while someone faints.
- Brick someone warns someone about safety at their usual meeting spot, revealing someone’s absence and the need for caution.
- The President, Kid someone, and the Lady engage in a private moment interrupted by someone, who threatens someone and flees, revealing the city's pervasive criminality.
- Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
- Someone, the someone, confronts someone, offering him a last chance to escape his impending doom, while ignoring the narrator's presence.
- Someone fears a police raid will end his career, while someone orchestrates an escape plan, engaging in tense negotiations with the police and guiding his guests through a secret ladder to safety.
- Someone, desperate to escape her life, confronts her husband someone, who tries to reason with her, leading to a bitter parting.
- Someone threatens someone for encroaching on his territory, warning him to stay out of his district or face consequences.
- Someone, cool in his authority, insists they leave while someone’s uncertain nature holds sway, hinting at her potential marriage proposal to someone’s friend.
- Someone leads a group to escort someone away, while someone fears someone cannot stop a fight with the Board of Rules.
- Someone threatens to sit at the protagonist's door until they return, citing curses and financial loss.
- Someone refuses someone entrance to the White Lane, leading to a heated confrontation with someone over someone’s questionable behavior.
- Someone threatens someone with a loaded gun, knowing no one else was present to commit the theft.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- The policeman, seeking to assert his authority, confronts someone, now a stranger, while someone waits anxiously for his friend.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- Someone, prompted by the Lady, stammers and drinks, someone escorts him away while Black someone waits outside, unsure of someone’s future.
- The doctor and someone argue over someone’s chances of survival, with the doctor holding power and someone pushing for any possible intervention.
- The captain maintains order while the boat struggles to land, while someone and someone navigate their complicated relationship.
- Someone packed for a covert return to New someone, armed and prepared for urban intrigue and confrontation.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone holds power over someone and someone, threatening to evict them if someone does not find a room.
- Someone demands someone attend to business matters, while someone and someone argue over her drinking habits, leading to a moment of vulnerability in someone’s park.
- Someone, holding someone tightly, buckles a life preserver around her while passengers panic and the boat begins to sink.
- The someone commands the young man to leave with him, seeking to understand his distress over a painful dental procedure.
- Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity.
- Someone confronts someone, a policeman, over a damaged horse, while someone threatens retribution and invites someone to a social event.
- Someone threatens to strangle someone with a bottle, revealing she misunderstood his poetry, while someone overhears and speculates about their relationship.
- Someone, reluctant to leave his job, is pressured by someone and someone to resign, but insists he has found his true calling and will remain.
=== R004
- Mounted Policeman someone, desperate for his badge and honor, confronts someone, his friend and rival, in the park, while someone plans to steal his identity and position.
- Someone secures a position for someone as a mounted policeman in Central Park, leading to someone’s attraction to the officer.
- Someone smashed a shop window, prompting a chase and confrontation with a policeman, who instead sought out the culprit, leading to someone’s patronizing visit to a cheap restaurant.
- Someone confronts a racist encounter at the pier, leading to a series of misfortunes and further social strife on the boat.
- Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity.
- Someone demands someone attend to business matters, while someone and someone argue over her drinking habits, leading to a moment of vulnerability in someone’s park.
- Someone’s men confront a cop in a dimly lit room, escalating from a casual encounter to a tense confrontation over a missing man.
- Special Terrestrial Officer someone presents a grim case to the court, while court officer threatens to transfer him, revealing the actual suspect is a man in the room.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Hank someone, a rancher seeking a mate, approaches someone, a shy girl, only to be interrupted by a cop who sees him talking to her.
- Someone’s wife, someone, confronts him over domestic duties, escalating to physical violence that she later realizes was a mutual act of passion.
- Someone, now seeking work, confronts someone, a former Gentle Rider, at a club, revealing their shared history and current mismatched fortunes.
- Cork coerces his girlfriend into a clandestine rendezvous at a known criminal's house, leading to a tense confrontation with the police.
- Someone confronts someone, a policeman, over a damaged horse, while someone threatens retribution and invites someone to a social event.
- The cop, tasked with maintaining order, confronts a young man who questions the cop's role and civic duty, leading to a conversation about the city's unrest and the cop's mundane nightly duties.
- Someone, a rancher, confronts former friend someone, a businessman, over someone’s new urban manners and social status, leading to a bar encounter.
- The policeman, vigilant and observant, encounters a man waiting outside a demolished restaurant, challenging the officer's knowledge of the area's history.
- Someone demanded someone take her home, threatening to call the police, while someone tried to retrieve a lost diamond ring, leading to a heated argument and a confrontation with someone.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- Someone, a former chauffeur, confronts an enigmatic automobilist demanding answers about his past and a prize, leading to a humiliating encounter.
- Policeman someone overhears someone’s domestic dispute, estimating the duration and escalating violence.
- The policeman, seeking to assert his authority, confronts someone, now a stranger, while someone waits anxiously for his friend.
- A cigar store owner confronts someone over a stolen umbrella, escalating into a confrontation with a passing policeman.
- Someone, desperate and ambitious, schemes to escape his current plight but is confronted by a policeman, revealing his criminal activities.
- Someone confronts someone, a former foe, in the chaotic street scene, their long-standing feud temporarily set aside.
- Someone, now a successful city official, confronts someone, now with a different facial feature, at a street corner, recalling past times.
- Someone, the girl, challenges Cop someone’s authority over her man, someone, with accusations and money, while someone tries to assert his power.
- Someone fears a police raid will end his career, while someone orchestrates an escape plan, engaging in tense negotiations with the police and guiding his guests through a secret ladder to safety.
=== R005
- Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment.
- Con, normally assertive, is tongue-tied and abashed before someone, while his colleagues someone and someone conduct secretive alchemical experiments in a hidden back room.
- Someone, a servant, nervously awaits someone choice of a dubious guest for dinner.
- Someone and the shy one huddled together, while someone and someone worked in secret, risking their venture in someone.
- Someone observes the vulgar, frenzied crowds at someone, while someone remains calm and happy beside him.
- Someone, charming and at ease in a café, withheld crucial information from her companions, raising suspicions about her true intentions.
- Someone, Lady, and someone engage in formal social rituals while someone explains something to someone, revealing someone’s disabilities momentarily vanish.
- Someone, a delegate at the someone National Convention, meets a distressed woman and her companion, who request his help in a private room.
- Someone and someone sit at someone’s table with someone and someone, while someone and someone observe, with someone’s reputation as a someone princess at stake.
- Someone, limping from an accident, accepted someone’s dinner invitation, revealing her true identity as a socialite to gain his attention.
- Someone, now coatless, served someone personally, while someone brought her courses, igniting her suspicions and admiration.
- Someone holds power over someone, who seeks a new cover for the table, while someone maintains a tense demeanor under scrutiny.
- Someone sat entranced by music and conversation, while someone’s influence remained distant, and her friends reveled in someone revelry.
- Someone, the charismatic waitress at someone’s, held sway over the chaotic dining room, revered by patrons as a living legend.
- Someone boasts of his superior knowledge of New someone at the expense of his friend someone, now reduced to living in "someone.
- Someone.
- Someone and someone covet someone, engaging in secret readings that transform the verses into a sacred text, unaware of its illicit origins until their marriage and move to New someone exposes them to its forbidden nature.
- Tom someone and someone searched the inaccessible someone monastery for someone, intrigued by rumors of an ancient, untraceable someone.
- Someone and someone anxiously watched the monk procession, recognizing someone among the unfamiliar faces.
- Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature.
- Someone, the Girl from someone’s, chose a seat away from prying eyes, while the smitten Man from someone closed in on her.
- The girl in the tan jacket and someone exchanged secrets as other passengers watched, with the girl holding power over her companion.
- Roomers jeered at someone, while someone and someone sat aloof, someone’s popularity dependent on their reactions.
- Someone and Van someone sat at separate tables in a luxurious dining room, each aware of the other's power and influence, while someone’s discontent mirrored the social hierarchy's rigid structure.
- Someone maneuvers someone to a secluded table, while her audience reacts with varying degrees of amusement and skepticism.
- Someone and Violet, true someone, lingered after the crowd, gazing at each other's blemishes and physical features.
- Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
- Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story.
- Someone’s lodger, someone, engages in secretive activities, while someone and someone debate his identity and background.
- Someone, unsure of her next move, hesitates as her landlady informs her of a gentleman caller, while secretly admiring her appearance in a mirror and contemplating her social status.
=== R006
- Someone confronted her neglectful husband, someone, over their failed expectations and domestic monotony.
- Someone, envious of someone’s marital privileges, feigned curiosity about her husband's nightly activities.
- Benedick, frustrated with his unrequited love, insults someone, a woman he dislikes, while someone mocks his love-loving nature.
- Someone demands to go out, questioning his father's authority and criticizing his mother's explanations, while his father reluctantly agrees, hinting at someone’s mental state.
- Someone’s love for Frank someone, a potential son-in-law, clashes with her father's cattle empire and his private secretary's presence.
- His wife's customary parting kiss and deft touch of ownership threatened to escalate into a full-blown confrontation over his mounting professional and personal stress.
- Someone threatens to leave someone to seek payment from their adulterous daughter-in-law someone.
- Someone manipulates her husband into comforting someone, while secretly planning to blame their missing child on her.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- Rita and someone complain to someone about being forced to stay with someone, who holds power over their financial situation and future, while criticizing his neglect and lack of affection.
- Someone, desperate to escape her life, confronts her husband someone, who tries to reason with her, leading to a bitter parting.
- Someone, accused of murder, throws a kiss at his wife's unseen admirer while his wife advises him to resist arrest.
- Someone, someone’s mother, and Sisters someone and someone engage in conversation while Tom and someone play on the porch, setting the stage for someone’s escalating confrontation with his father.
- The man upstairs played music to mask the couple's quarrel, while someone prepared to read, unaware her landlady had already answered the unexpected visitor.
- The father threatens to quit his plumbing job to avoid paying high wages, while his son continues to work diligently despite the family's financial struggles.
- Someone envies someone’s physical abuse, while someone boasts of her husband's mild treatment to mask her own bruises.
- Someone and someone discuss their abusive marriages, with someone resenting her husband's lack of physical violence compared to her husband's passive-aggressive treatment.
- Old someone, manufacturer and soap tycoon, confronts his son someone over household expenses, revealing his scrutiny of the family's lifestyle.
- A red-haired, unshaven man in carpet-slippers read the evening paper by a window, while his woman cooked, and a curious child asked to play checkers, sparking a conflict between the man's desire for rest and the child's desire for play.
- Someone lavishly praises her husband while someone expresses longing for a more intense relationship, leading to a heated interaction between someone and someone.
- Someone pressures her music teacher husband someone to continue studying while she teaches art lessons, leading to financial gains and strained family life.
- The young man confronts the lady, demanding she read a letter explaining his situation, while she accuses him of trying to manipulate her with false stories.
- Someone schemes to expose her husband's infidelity while someone hides the truth, causing a domestic conflict upstairs.
- Someone pressures his wife into an impulsive marriage proposal, while I, skeptical, suggests seeking advice from someone.
- Someone investigates a murder, revealing details to Woods, who threatens to arrest him, while a woman watches from her bed.
- Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
- Someone manipulates her housekeeper someone to obtain tea and sugar, while hiding a conflict with a man in the house.
- Someone plots to provoke a confrontation with her husband, who sits in his stockinged feet reading, as Labor Day approaches.
- Someone interrogates someone about his previous love affair, pressing for details and motives in a tense power dynamic.
- Someone confronts someone over his mother's invitation to visit the rural farm, hinting at potential conflict.
- Someone, sub-editor of Doc’s Magazine, leaves work to seek distraction from his day's frustrations by calling his girlfriend, someone.
- Someone’s wife, someone, confronts him over domestic duties, escalating to physical violence that she later realizes was a mutual act of passion.
- Someone, now married to someone, continued to listen to someone’s tirade while a customer complained about the price at a bakery.
- Someone demands half an hour from someone to demonstrate his theory of true-to-life fiction using someone, his wife, as an example.
- Someone, the maid, threatens to blow a goodbye kiss to someone from her sickbed, while someone tries to convince the ambulance doctor about the strange case of someone.
- Someone threatens someone with losing his job and demanding repayment of a debt she owes him, while she tries to convince him it is still winter.
=== R007
- A banker desperate for cash extorts a loan shark, who offers him $60,000 in a safe, but warns of potential danger.
- The General and someone negotiate the sale of a luxurious hotel for personal gain, while someone, the intended victim, discovers the scheme too late.
- Someone presents a fake $950 roll to "Bunco someone," who quickly exposes it as fraudulent, leading to suspicion and further intrigue among the men.
- Someone, a someone businessman, is arrested for mistaken identity as "someone" someone, a someone burglar, on a train journey.
- The coachman of a funeral carriage lies to a man hired to drive him, attempting to extort money while feigning sympathy for a wealthy woman's financial struggles.
- Someone attempts to bribe someone with a thousand-dollar note, but she refuses, leading to a tense interaction between them.
- Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner.
- Fifth Avenue millionaire someone accuses his wife someone of "graft" for accepting a valuable diamond brooch from a business associate, while someone himself is revealed to be a front man for a sidewalk merchant someone.
- Someone executed a series of trades for financial gain, while someone was entangled in a scheme to extort money from someone through a fabricated love affair.
- Someone feigned innocence while Woods held a concealed weapon over him.
- Someone calculated someone’s distance, eyeing her as a potential victim for his planned blackmail.
- Someone, disguised as a maid, wheedles someone into lending her clothing to con someone’s wealthy suitor, someone.
- Someone, fearing her impending marriage to someone, confesses her deception involving a fake engagement to a deceased Count, while someone remains skeptical and forgiving.
- Someone, seeking to exert influence, charitably donated large sums to the Universal Benevolent Association of the Globe, only to be outdone by a lesser-known donor, sparking jealousy and a playful prank.
- Someone, now someone, pressures someone into accepting his help to cure his aphasia, hinting at a covert treatment.
- Someone, a desperate man, attempts to con a young woman by posing as a "masher" in front of a cop, unaware the officer is watching him.
- Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence.
- Someone plots to elope with Rosy, bribing someone to poison her, while someone informs someone Riddle, who will ambush them.
- Someone schemes to bribe Rosy with a rumored love potion to prevent her from leaving Old Man Riddle.
- Major someone’s death sparks gossip and suspicion, with one man accusing black men of his murder over a missing fifty dollars.
- Someone Valentine, the only witness to someone death, is suspected of embezzling $647,000 and someone lover someone is convinced of his guilt.
- Someone, a wealthy man, manipulates someone into posing as a criminal to gain attention, revealing his own ambition to be noticed through outrageous and costly efforts.
- Someone, deceived into thinking someone is a fellow member, blackmails someone for sexual favors in exchange for protecting him from his true identity as a gangster.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions.
- Someone, a Wall Street speculator, seeks an unconventional meeting with a shady Wall Street "crook" for a private conversation.
- Someone demands attention, accusing others of market manipulation while someone and Silver try to understand and contain his eccentric demands.
- Someone bargains with someone over payment for her labor, while someone and someone scheme to exploit her, revealing her precarious financial situation.
- Someone flaunted his earnings while someone, burnt by someone’s antics, explained her injury to him.
- The millionaire lumberman, disguised as a miner, is challenged by the bollworm (someone) and her friends, leading to a series of attempts to win her affections and control.
- Someone’s father, wealthy but controlling, disowns him, forcing someone to support a factory girl and gamble on his art career.
- Someone, a potential prize for the trio of street fighters someone, Black someone, and someone, is coerced into accepting a reward for his services, leading to a tense standoff at the Millionaire’s house.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
- Jabez someone, a pauper, sought to reclaim his fortune by confronting a wealthy man in the streets, only to be recognized by the city's keen-eyed police.
- Someone, a businessman, pays someone for a successful con, questioning if someone despises money despite his confident denial.
- Old someone had hidden funds, while someone took only his salary; the New someone girl was engaged, and someone and someone ended in a half-Nelson.
- Silver returns with the picture, revealing someone trip and its implications for its market value.
- The candy man pressures someone for a romantic confession while holding power over her by controlling her visibility in the media.
=== R008
- The young man implores the lady to reconsider his actions, while a streetwise boy delivers a direct challenge to the young man's message.
- Someone pressures his daughters into starting work, while someone and her friend showcase their skills and ambitions.
- Someone proposes to someone’s daughter someone, revealing he receives romantic favors in exchange for information about her whereabouts.
- Someone and someone visit someone’s store, with someone showing off his hat, while someone questions the value of someone’s offer for a rooftop view.
- The young man and Bill compete to solve a riddle to win a place at a wealthy woman's daughter's birthday party, with the stakes including marriage to the woman.
- The young man seeks advice on choosing between two wealthy suitors, while the girl, of a higher social class, considers his appeal despite her own preferences.
- The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead.
- Someone, a shop forelady, rejects a marriage proposal from a wealthy suitor, sparking jealousy from a coworker who had previously invited him to dine.
- Someone, desperate for a date, pleads with his father for help in securing a romantic encounter with a woman, revealing his financial desperation and social constraints.
- The young man seeks financial advice from the someone, a noble, in exchange for solving a riddle about his mundane job at someone’s shop.
- Silver and someone pool their capital to secure an introduction to someone.
- Someone, seeking employment, challenges someone, a serious young electrician, to a vaudeville night for a chance to impress his wealthy friend someone.
- Someone, millionaire, felt both flattered and awkward as he encountered someone, a shopgirl, in a glove shop, realizing he had no social means to propose to her.
- Someone, a someone head-waiter, proposes to someone, a New someone, after impressing her with his culinary skills.
- Someone proposes to the first white apron he sees, while someone and someone scheme to buy a someone cottage with their ill-gotten gains.
- Someone, a summer student, engages Reverend someone in a summer village, with someone’s charisma and unconventional behavior sparking their romance.
- Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions.
- Someone, looking imposing, invites a young man to join him at a someone table in a glittering part of someone.
- The Prince attempts to persuade the young man to abandon his job as a clockmaker, a private affair, but the young man resists, eyeing a nearby house.
- Someone, a young man engaged to a parlor maid, seeks to impress a wealthy man by visiting his house, offering investment advice, and introducing himself to the man's daughter.
- Someone, preparing for a matinée, consults her dresser about a potential evening engagement while someone, intrigued by her wealth, asks for advice on how to spend a thousand dollars.
- Someone, a young man, eagerly awaits a date with a street-corner shopgirl, while his mother chauffeurs him to a fancy restaurant.
- Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain.
- The young man hesitates over a book left on the sidewalk, then decides to join a club with the chauffeur.
- A young man and a girl wait impatiently for a fairy to grant them a moment from their wedding day, while a megaphone man preaches about millionaires.
- Someone, now a wealthy bachelor, revisits his old friend someone, a watchmaker turned outdoorsman, finding them as different as ever.
- The young man, someone, seeks to understand the upper class while the girl, offended by his ignorance, tries to educate him.
- Someone, newlyweds, attempts to impress his bride-to-be someone with his good looks and worldly wisdom.
- Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
=== R009
- Someone schemes to win back his wife, someone, with false promises, while someone and someone wait for a dollar from someone.
- Someone, seeking money left by his uncle, confronts someone, a blind man, and lawyer someone in a cab, revealing a secret amendment to the will.
- Lawyer someone demands an account of Young someone’s expenditure of $1,000 inherited from his uncle's will, setting off a chain of events involving Old someone.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
- Someone, seeking to win back his aunt's favor, bargains with money and Aunt someone’s affectionate ring, while secretly courting someone.
- Old Tom someone, now a caliph with $42 million, seeks new thrills beyond clubs and dinners, craving experiences money can’t buy.
- Someone, a potential prize for the trio of street fighters someone, Black someone, and someone, is coerced into accepting a reward for his services, leading to a tense standoff at the Millionaire’s house.
- Someone, a wealthy man, manipulates someone into posing as a criminal to gain attention, revealing his own ambition to be noticed through outrageous and costly efforts.
- Someone, a panhandler, seeks financial advice from someone, a former high-flyer now destitute, as someone, his wealthy uncle, offers him a comeback.
- Someone executed a series of trades for financial gain, while someone was entangled in a scheme to extort money from someone through a fabricated love affair.
- Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner.
- Caliphs control someone, exploiting beggars and paupers while hiding their own misdeeds, leading to a decline in storytelling.
- Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence.
- Someone, deceived into thinking someone is a fellow member, blackmails someone for sexual favors in exchange for protecting him from his true identity as a gangster.
- Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses.
- Someone, seeking to repay his father's ill-gotten wealth, consults someone, who explains the futility of restitution to the robbed.
- Someone bargains with someone over payment for her labor, while someone and someone scheme to exploit her, revealing her precarious financial situation.
- Someone, a businessman, pays someone for a successful con, questioning if someone despises money despite his confident denial.
- Old someone flaunted his wealth and moralizing skills, offering someone various uses for a thousand dollars, to which someone responded with frustration and a desire to spend it impulsively.
- Uncle someone extorted money from someone through false promises and coercion, while the doctor exploited her financially and emotionally.
- Someone confronts someone Sharp and someone, his executors, over the interpretation of a codicil to his uncle's will, threatening to expose their handling of a $1,000 bequest.
- Someone demands repayment and compensation for all losses incurred by someone’s bakery failure, escalating from $1,000 to $100,000, as a test of someone’s Socialistic beliefs.
- Someone demands payment from someone for custom-made clothes, threatening to take her away unless she pays, while someone begrudgingly complies, feeling the financial strain of her desire for fashionable attire.
- Someone forces someone back to the bench, while someone, fearing for his life, begs for reassurance as he panics over potential misfortunes that could prevent him from receiving his inheritance.
- Someone, now wealthy, seeks advice on what to do with a thousand dollars after inheriting a fortune from his deceased uncle's legal firm, which includes a bequest to a microbe and a ward, leaving him perplexed about his newfound wealth.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- Caliph someone, desperate to assuage his guilt over his wealth, made numerous charitable donations and bribes, but his heart remained troubled, leading to conflicts with his staff and legal troubles.
- Old someone, now caliph, seeks to square a ten thousand dollar debt by any means, while his backstory hints at a transformation from a coal mine breaker boy to a wealthy magnate.
- Someone challenges someone over her inheritance from Uncle someone, a paltry $20,000 annually, insisting she wants more than financial security.
=== R010
- Someone and Violet's wedding approached, drawing a boisterous congregation of someone to the Big Church.
- Someone’s failed job applications and heartbreak led her to someone, who proposed marriage, prompting her to seek solace in the unlikely embrace of someone in the skylight room.
- Someone, haughty at first, invites someone to someone Island, setting up a social encounter where their initial differences are bridged by shared experiences.
- Someone and someone’s friendship shifted as someone accepted a date with a new suitor, leaving someone feeling sidelined and envious.
- Someone invites someone to dine with him, setting a someone evening at seven for a potential romantic engagement.
- Someone, the poet, schemes to meet the mysterious woman who he believes has returned to him, while someone, the businessman, arrives early for his date, frustrating someone’s plans.
- Rivalry among regulars for someone’s attention threatened to overshadow her, as she received multiple invitations and gifts, while someone, her friend, remained unremarked upon.
- Con returns to the back room after drinking a mysterious golden liquid, finding someone upstairs and preparing to propose marriage.
- Someone, charming and at ease in a café, withheld crucial information from her companions, raising suspicions about her true intentions.
- Someone persistently courted someone, while she temporized, unaware a date was imminent.
- Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story.
- Someone, limping from an accident, accepted someone’s dinner invitation, revealing her true identity as a socialite to gain his attention.
- Someone, seeking amusement, pretends to be a common passenger while actually attending a rendezvous with a strikingly beautiful woman at someone Island.
- Towers someone, a man seeking a meal and a conversation, pressures a young woman into accompanying him, citing her injured ankle as a pretext, while secretly planning a romantic dinner.
- Someone, a department store clerk, eagerly plans a dinner date with someone, hoping to impress her friend someone, despite having only fifty cents left from her meager weekly wage.
- Someone, a lady in her late twenties, diplomatically turns down a man's romantic overtures while subtly arranging a clandestine meeting with him.
- Someone, desperate to win someone back, seduced her at her wedding before leaving with her soon-to-be-husband Frank.
- Someone placates someone, a panhandling streetwalker, by taking him to lunch at a hotel, while secretly observing and possibly exploiting him.
- Someone, the model, dazzled a hesitant buyer with her professional poise and someone’s encouragement, while her own thoughts turned to her dinner date with the buyer's wife-to-be.
- Lucy refused to reveal her past as an actress to her friend someone, fearing scandal, yet admitted to her happy life in the village until someone’s gossip revealed someone’s past love affair.
- Someone’s engagement to someone put someone in a position of curiosity and suspicion, as he remained distant and secretive despite their intimate park bench meetings.
- Someone recounts how he met someone, a journalist, at a someone garden party hosted by a grand vizier, where they engaged in a clandestine conversation.
- Big someone, unsure of his new wife's identity, decided to flaunt her at his usual haunts to impress his social circle.
- Someone, uncertain about his fiancé's wedding plans, pressures someone to find a drug to ensure Rosy's attendance, while secretly preparing for their elopement.
- Someone, seeking to impress the demurely grateful girl, suggests they dine together, recognizing her as a lady despite her plain attire.
- Someone declines Big someone’s wedding invitation, citing a reason related to politics, despite someone’s encouragement.
- Big someone" someone reluctantly agreed to go out for dinner after his wife insisted, challenging his usual reluctance to leave the house.
- Cork attempts to persuade a reluctant Ruby to accompany him to her apartment, using flattery and vague references to his social status to gain her trust.
- Someone and someone engage in a card game over dinner, with someone winning and planning to use a pretext to escape.
- My friend invites me to a restaurant, hinting at a Man About Town, while I seek out my own social circle instead.
- Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature.
- Lodger No. 2, a charming but mysterious man, seduces someone with tales and innuendo, leading her to believe her husband has returned, despite his long absence.
- Someone proposes a scheme to leave someone, pretending to flee with an understanding lover, while someone reluctantly agrees to hide in the dining room to observe her reaction.
- Someone proposed to someone, who initially laughed but then accepted, revealing they had secretly married the night before.
- Someone, a factory worker, eagerly awaits her someone night dance with someone, a fellow worker and close friend, despite someone’s awkwardness, to impress her boyfriend someone.
- Someone proposes postponing dinner indefinitely, revealing he is leaving for a world voyage to escape uncertainty, while someone expresses skepticism and hints at his own secret marriage.
- Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
=== R011
- Someone, a shop forelady, rejects a marriage proposal from a wealthy suitor, sparking jealousy from a coworker who had previously invited him to dine.
- Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
- Someone married someone Van Der Pool, scaling the social someone to reach her high above the reach of others.
- Someone sought to exert her influence over the young man, who held the power of his upcoming someone travel, while maintaining her social status and luxury at the Hotel someone.
- Someone desperately wants to please her husband someone with expensive combs, but her pride prevents her from admitting she needs to sell her watch.
- Someone, the real estate agent, holds power over potential tenants, showcasing properties and dismissing those who cannot afford them.
- Someone, the chaperone, balanced someone and someone’s differing priorities as they sought excitement, with someone advocating for marriage and financial independence, while someone preferred her position and learning opportunities.
- Someone pressures her music teacher husband someone to continue studying while she teaches art lessons, leading to financial gains and strained family life.
- Silver and someone pool their capital to secure an introduction to someone.
- Someone’s father, wealthy but controlling, disowns him, forcing someone to support a factory girl and gamble on his art career.
- Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status.
- Someone’s love for Frank someone, a potential son-in-law, clashes with her father's cattle empire and his private secretary's presence.
- Someone resigned her cashiership to someone, who eagerly accepted and promised to lavish her fortune on the adoptive couple.
=== R012
- Seltzer's tribal gentlemen watch as someone and his wife someone enter, impressed but wary, while the guests enjoy a lively meal.
- Someone maneuvers someone to a secluded table, while her audience reacts with varying degrees of amusement and skepticism.
- Major someone prowled the hotel lobby like a rabid dog, his smooth-shaven face aglow with a predatory hunger, while the narrator, a someone, watched warily from a safe distance.
- Someone, now aware of newfound power, returns home to find someone preparing a lavish meal, greeting him with usual boisterousness but sensing something amiss.
- Someone demands payment from someone, who reveals he owns the hotel and offers to make his rooms ready, complicating the dinner party arrangement.
- The Grand Duke and someone demand deference from someone, who works as a cashier at a restaurant, as he declines their invitation to a masked ball.
- Someone holds power over someone, who seeks a new cover for the table, while someone maintains a tense demeanor under scrutiny.
- Someone, the suitor, pressures and then coddles someone, the hungry woman, during their meal.
- Someone, a servant, nervously awaits someone choice of a dubious guest for dinner.
- The General commands a column while someone, visibly uncomfortable, feigns interest in the General's political musings and culinary inquiries.
- Someone, the host, attempts to placate the aggressive someone, the guest, while someone, the dinner host, tries to initiate a seating arrangement.
- Someone assigns someone to try on coats and hats, while behind the scenes, he arranges a dinner reservation for himself.
- The guest lies motionless, as the chaotic room attempts to communicate its occupants to him.
- Someone proposes a lavish dinner at a hotel, betting on who can withstand the establishment's displeasure, while someone eagerly accepts the challenge.
- The Captain demands food from his reluctant butler someone, who suggests they try a restaurant, despite their previous failure.
- Someone awaited someone at the door with a kiss, while he read the evening paper of foreign atrocities, and planned their lavish dinner and evening activities.
- The Old Gentleman coerces someone into a someone dinner, hinting someone lacks a male heir to carry on the tradition.
- Someone, drunk and confused, barges into the Millionaire’s home, demanding proper someone etiquette from servants and the host, someone, who reluctantly complies.
- A weary traveler haggles with a cab driver over fare, then seeks solace in a ritzy yet overpriced hotel, only to be disappointed by its slow service and overpriced food.
- Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment.
- Someone poses, someone bites her lips, someone checks his coat, someone watches the clock as nine approaches, and the dinner party's humor escalates with each course.
- Someone’s crowded dining room hosts a mixed crowd of someone, opportunists, and arrivistes, all clamoring for his culinary and social cachet.
=== R013
- Someone confronts someone, a policeman, over a damaged horse, while someone threatens retribution and invites someone to a social event.
- Someone, smug after a romantic encounter, confronts a young man who had been flirting with a lady he desires.
- Someone, a someone, accuses someone of neglecting his civic duties, while someone dismisses spring as lacking, sparking a disagreement.
- Someone, cool in his authority, insists they leave while someone’s uncertain nature holds sway, hinting at her potential marriage proposal to someone’s friend.
- The girl, seeking a meeting, confronts someone over his refusal to entertain her at his home, revealing her desperation and naivety.
- The philosopher tries to explain celestial phenomena to someone, who becomes angry and insists on leaving, leading to a confrontation.
- Someone disputes someone’s claim of spring, while someone’s habitual morning observation reveals unease and distraction.
- Someone, a poet, challenges his neighbor's romantic display, leading to a clandestine encounter where he spies on her through his window.
- Someone demands someone attend to business matters, while someone and someone argue over her drinking habits, leading to a moment of vulnerability in someone’s park.
- Someone’s wife, someone, confronts him over domestic duties, escalating to physical violence that she later realizes was a mutual act of passion.
- Someone covets the candy man's affection, while someone threatens to reveal their secret, leaving him no choice but to leave.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone, desperate to escape her life, confronts her husband someone, who tries to reason with her, leading to a bitter parting.
- Someone demands to go out, questioning his father's authority and criticizing his mother's explanations, while his father reluctantly agrees, hinting at someone’s mental state.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- Someone, without an umbrella, pleaded for someone’s company as he blocked her path in the rain.
- Someone threatens to strangle someone with a bottle, revealing she misunderstood his poetry, while someone overhears and speculates about their relationship.
- The argument between someone and the red-haired, unshaven man over someone’s street playtime escalates into a competitive betting scenario at a saloon.
- The dark-haired young man, likely a someone, challenges the someone social order by loudly interrupting the narrator's attempt to gather information about his origins.
- Someone confronted someone, now free, two blocks away, while he struggled with his own desires and failed to understand her sudden liberation.
- Someone, a man of literature, argues with a long man over their differing interpretations of fate and physical appearance, leading to a disagreement and eventual parting.
- The man confronts the Park someone about illegal park users, sparking a conversation about public space usage and social norms.
- Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity.
- The policeman, seeking to assert his authority, confronts someone, now a stranger, while someone waits anxiously for his friend.
- Someone, the someone, confronts someone, offering him a last chance to escape his impending doom, while ignoring the narrator's presence.
- Someone and the someone argue under the moonlight, with the someone threatening someone, who senses he is the only one aware of the danger.
- Someone, a man from the North, confronts a man from the West, challenging his identity and social status.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
- Someone, someone, and someone’s sick child argue over someone’s continued presence, with someone insisting on staying to finish her drawings, while someone demands someone leave to see the last ivy leaf fall outside.
=== R014
- Someone apologizes to someone for a drunken incident, but she rejects his apology, choosing to remain distant and resentful.
- The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead.
- Someone and someone dined at tables d'hôte, befriended a couple, and spent evenings dancing, with someone learning to drink and someone to drink more, all while living in a run-down someone.
- Someone, now the center of attention, commands wine for his table and others, flaunting his newfound power.
- Someone demands someone attend to business matters, while someone and someone argue over her drinking habits, leading to a moment of vulnerability in someone’s park.
- Someone, with his wealth and charisma, commands the someone as he greets his lieutenants, who are intoxicated by his false camaraderie, while someone, now delirious, pledges his loyalty with a drunken gesture.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Cork seeks anonymity from the police by visiting a seedy bar where he hopes to avoid recognition, while someone ventures in search of adventure and potential employment.
- Someone silently returned to the table, casting suspicious glances at someone, who had cut out drinking, while he tried to maintain the evening's conversation.
- Someone, seated at a restaurant table, manipulates someone into buying drinks while trying to sell his ranch.
- Someone, a rancher, confronts former friend someone, a businessman, over someone’s new urban manners and social status, leading to a bar encounter.
- Someone pressures Con and someone to drink more alcohol to continue their failed experiment, leading to a fight in the bar.
- Someone confronts his alcoholism, forced to admit it to his drinking buddies, initiating a painful homecoming where he must reconcile his public persona with his private struggles.
- Someone, now seeking work, confronts someone, a former Gentle Rider, at a club, revealing their shared history and current mismatched fortunes.
- The man of destiny seeks companionship, offering someone a drink in a saloon to discuss his literary pursuits and the unavailability of a book for him.
- Someone, the bar owner, wields power over his guests, manipulating them with charm and authority.
- Someone, drunk and confused, barges into the Millionaire’s home, demanding proper someone etiquette from servants and the host, someone, who reluctantly complies.
- Someone, a businessman, offers a drink to indebted someone Woods, hinting at their unequal power dynamic and someone’s reluctance to arrest Woods.
- Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses.
- A Negro waiter at a dinner asks if there is anything to do in town, learning the nightlife is closed, leading him to explore the city streets during a race riot.
- Con someone works the bar while Con dances for the elect, a saloon where teetotalers seek refuge in a slot restaurant.
- Someone, burdened by a someone and a festival, sought solace in a glass of beer, while someone tried to cheer him up on someone.
- Someone and the Captain, now a saloon-keeper, meet in the city's downtrodden core, both seeking scraps from the moral cataclysms that have reduced them to this social abyss.
- Someone, seeking revenge, offers a drink to someone, while someone, a child, watches them from the street.
- Major someone confronts the narrator in a bar, forcing him to confront a torn, counterfeit dollar bill, intensifying their hostile encounter.
- Old someone, a reluctant churchgoer, pays for drinks with money offered to a church, which someone, the proprietor, refuses, leading to a confrontation with a beggar woman.
- Someone, now sober, confronts the saloon culture with newfound hostility, while his drinking companions continue their revelry.
- A critic observes a man-about-town who frequents seedy bars and nightclubs, seeking new experiences, while a churchgoer donates to charity, unaware of their shared city.
- Someone scavenged a lost rag-doll, then used it to con drinks at a saloon, while others feasted and celebrated nearby.
- The bartender accuses someone of being part of someone’s come-on squad, while someone tries to secure change for his valise containing rural clothes.
=== R015
- Someone, accused of murder, throws a kiss at his wife's unseen admirer while his wife advises him to resist arrest.
- Someone, the lawyer's wife, mocks and questions someone’s memory of their past encounter, provoking him with intimate questions about their affair.
- Someone investigates a murder, revealing details to Woods, who threatens to arrest him, while a woman watches from her bed.
- Someone feigned innocence while Woods held a concealed weapon over him.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- The doctor feigns amnesia to protect his wife from a dangerous impostor, while the impostor tries to exploit their situation.
- The lawyer, someone, confronts his unseen wife's lover, someone, revealing he has forgotten his identity and aphasia.
- Cork coerces his girlfriend into a clandestine rendezvous at a known criminal's house, leading to a tense confrontation with the police.
- Someone threatens to strangle someone with a bottle, revealing she misunderstood his poetry, while someone overhears and speculates about their relationship.
- Someone, a poet, challenges his neighbor's romantic display, leading to a clandestine encounter where he spies on her through his window.
- A woman accuses someone of not recognizing her, leading to a tense yet intimate dinner where she reveals she remembers him from a past relationship.
- Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
- Someone desperately tries to convince the Tramp Juggler that his wife Cherry is not secretly in love with him, insisting it's too late and they have been married for two years.
- His wife's customary parting kiss and deft touch of ownership threatened to escalate into a full-blown confrontation over his mounting professional and personal stress.
- Someone, tempted by the apple tree, is interrupted by his wife's unexpected presence and tender words.
=== R016
- Someone wanders aimlessly, desperate to avoid dining at his favorite restaurant, instead hoping for chance encounters that might inspire new ideas.
- Someone seeks work in New someone, encountering a stern preacher who warns of the dangers of the theatre, leading her to seek employment in a factory for artificial flowers.
- Someone, a salesman, strolls through city streets, drawn to both the homebound and transient crowds, while seeking fortune and excitement.
- Someone persistently courted someone, a shopgirl, offering her a life of leisure in exotic locations to break her from her mundane existence.
- Someone, a young woman, navigates the crowded, neon-lit streets of someone, buying necessities while contemplating her meager finances and the harsh realities of her living situation.
- Someone, a tailor’s apprentice, eagerly seeks out someone at the someone after winning elections in his district.
- Someone navigated the mundane routines and sudden upheavals of city life, from thrift store sales to street encounters with danger.
- Someone, a cigaretteur and friend to the narrator, envies the narrator's young, melancholic friend who works in a factory for low wages.
- Someone, millionaire, felt both flattered and awkward as he encountered someone, a shopgirl, in a glove shop, realizing he had no social means to propose to her.
- Someone led someone to meet someone, a factory worker struggling to cope with sudden prosperity, in her dingy tenement.
- Someone, a hunter, persistently pursues game while someone, a laundry worker, saves money for evening pleasures, someone her loyal companion.
- Someone ironed his evening suit while his modest earnings funded his nights out in finer attire.
- Someone, aspiring shop assistant, uses her position to cultivate social connections and discerns wealthy patrons, while her female coworkers monitor her progress and social standing.
- Someone left his club, frustrated by daily monotony and unrequited love, as he walked through dull, fashionable streets.
- Someone, a typist in the city, visits old Farmer someone Farm to court his son someone, a modern farmer, only to find her plans disrupted by work duties.
- Someone’s return to the engine-house sparked renewed interest from someone, who became a frequent visitor despite being kicked out, while someone’s son someone developed a fondness for someone.
- Someone, a clerk at Insurance, seeks to understand life through poverty, love, and war, finding deeper meaning in urban experiences.
=== R017
- Someone, a potential prize for the trio of street fighters someone, Black someone, and someone, is coerced into accepting a reward for his services, leading to a tense standoff at the Millionaire’s house.
- Old someone flaunted his wealth and moralizing skills, offering someone various uses for a thousand dollars, to which someone responded with frustration and a desire to spend it impulsively.
- The someone, hungry and boastful, demands food from the campers, who are initially wary but eventually welcome him, revealing someone’s wealth and beauty.
- Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses.
- Someone attempts to bribe someone with a thousand-dollar note, but she refuses, leading to a tense interaction between them.
- Young men at someone’s diner exchanged witty banter for cash, with older men offering more personal favors to curry favor.
- Someone bargains with someone over payment for her labor, while someone and someone scheme to exploit her, revealing her precarious financial situation.
- Someone, or someone, pocketed a cab while someone screamed and old someone complained about his various solicitations.
- Major someone demanded drinks, then used genealogy to avoid paying, leading to a clerk suggesting he be evicted for being a loafer without known means of support.
- Someone demands payment from someone, who reveals he owns the hotel and offers to make his rooms ready, complicating the dinner party arrangement.
- Major someone confronts the narrator in a bar, forcing him to confront a torn, counterfeit dollar bill, intensifying their hostile encounter.
- Someone demands payment from someone for custom-made clothes, threatening to take her away unless she pays, while someone begrudgingly complies, feeling the financial strain of her desire for fashionable attire.
- Someone, seeking revenge for mistreatment by a man who has insulted the lady, agrees to help despite someone’s initial reluctance.
- Someone, drunk and confused, barges into the Millionaire’s home, demanding proper someone etiquette from servants and the host, someone, who reluctantly complies.
- Someone searched his pockets for money, finding none, as a man approached him, revealing he had only two pennies for dinner.
- The lady accuses someone’s wealthy aunt of aiding the devil by selling brandy balls, inciting someone to seek other work to avoid assisting in their production.
- Someone begs alms from the someone populace, met with indifference, before being struck by a vehicle.
- Someone, a businessman, offers a drink to indebted someone Woods, hinting at their unequal power dynamic and someone’s reluctance to arrest Woods.
- Old someone, a reluctant churchgoer, pays for drinks with money offered to a church, which someone, the proprietor, refuses, leading to a confrontation with a beggar woman.
- Someone, seeking groceries, confronts someone over payment, escalating into a physical altercation in the store.
- Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner.
- The old man seeks his son someone, believing him to be a heavy-set man in his late twenties, while someone, annoyed, tries to redirect him to the Bishop of Long Island's dinner.
- Someone, a businessman, pays someone for a successful con, questioning if someone despises money despite his confident denial.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone, someone, and the wan Bed Liner negotiate over money for someone to help a sick man, revealing complex family dynamics and financial desperation.
- Someone, a young man, confronts the Preacher over unpaid debts while his lover someone arrives, revealing she saw someone at a fortune teller's.
- Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence.
- Old someone hands a tainted bill to a woman, who then runs to a bakery and spends it on extravagant treats.
- The bartender accuses someone of being part of someone’s come-on squad, while someone tries to secure change for his valise containing rural clothes.
- Someone, seated at a restaurant table, manipulates someone into buying drinks while trying to sell his ranch.
=== R018
- Someone, a man from someone, sought to impress and win over Lady someone with his sincerity, despite her initial skepticism.
- Someone married someone Van Der Pool, scaling the social someone to reach her high above the reach of others.
- Someone, a newcomer to the someone, navigates its exclusive social circle with tact, forming an acquaintance with someone.
- Someone, a someone head-waiter, proposes to someone, a New someone, after impressing her with his culinary skills.
- Someone, the cash register girl, held sway over patrons with her charm and wit, commanding respect and affection in equal measure.
- Someone’s flirtatious advances and the candy man's grudging compliments create a volatile dynamic of mutual attraction and disdain.
- The gentleman from someone, seeking companionship, underestimated someone’s preference for financial security over his romantic advances.
- Someone, a wealthy visitor, hesitates as floorwalker someone confronts him with a shopgirl smile, unaware of the flirtatious nature of his profession.
- The candy man outside someone’s window in the bohemian alley court tempts her with his coolness, disrupting her social routine and desire for flirtatious encounters.
- Someone, seeking advancement, pressures his subordinate for favors while maintaining a facade of eccentricity and subtly threatening blackmail.
- Someone flatters and flirts with the actress, securing a role while her companions and rival, Summers, are left in the dark.
- Someone, seeking to boost her wages, exaggerated a minor flirtation with a customer, leading to increased attention from male customers at her restaurant job.
- Someone, confident and well-groomed, seeks success at a high-end restaurant but is turned away due to his shabby attire, forcing him to reconsider his path to success.
- Someone, seeking social advancement, meets someone at a boarding house, initially dismissing her but later noticing her striking appearance and demeanor.
- Someone, a philosopher, outwitted someone by arriving at someone’s house first, showcasing vast knowledge but failing to impress with his lack of personal charm.
- Tom, the youth, hailed someone at a country station, eager to catch up after years apart, while someone, cool and aloof, appeared, diminishing Tom's confidence.
- Someone pressures his protégé to secure the role of someone" by convincing someone, who insists on the authenticity of the part, despite his suggestions being rejected.
- Parkenstacker opened the meeting with flattery, but the girl responded with icy disdain, challenging his assumptions and curiosity.
- Someone attempts to court someone, but someone interrupts their moment by falling off a cliff.
- The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead.
- Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain.
- Men at someone’s tables flatter someone, while someone, loyal to her, accepts their attentions without reciprocating.
- Someone sought to exert her influence over the young man, who held the power of his upcoming someone travel, while maintaining her social status and luxury at the Hotel someone.
- Someone, usually passive at dances, becomes the center of attention as someone wins her heart, while other men vie for her company.
- Someone, seeking to recover his writing skills, manipulates a young admirer to provide material for his stories, leading to a complex romantic entanglement.
- Someone, the grocer’s assistant, admires him while someone, the housemaid, resents his indifference to her advances.
- Someone, now coatless, served someone personally, while someone brought her courses, igniting her suspicions and admiration.
- Someone, expecting a beating, instead finds himself praised by someone, escalating a power dynamic between them.
- Someone’s confident whistling made someone eager to secure his affections, as he offered practical benefits and hinted at future financial stability.
- A young laundry worker named someone, drunk and bold, seduced someone, making her suddenly desirable to other men.
- Towers someone, seeking to impress someone, prated about superficial interests while secretly hoping to reveal his actual, albeit mundane, work life.
- The squire, someone, and someone, the department store employee, observe and mimic the refined behaviors of their social superiors, seeking to embody the high social refinement that surrounds them.
- Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status.
- Someone baited and tormented the candy man daily, until she finally challenged him directly, changing her appearance to thwart his usual expectations.
- Someone, unsure of her next move, hesitates as her landlady informs her of a gentleman caller, while secretly admiring her appearance in a mirror and contemplating her social status.
- Someone introduces her new beau, someone, to the Clover Leaf Club members, who judge him based on his physical prowess and social status.
- Someone, smug after a romantic encounter, confronts a young man who had been flirting with a lady he desires.
- Someone, seeking to impress, overplays his hand in a new town, angering Bunco someone with his ostentatious display.
- The Honorable someone, seeking to impress, engages the reluctant someone in a lively conversation, transforming her into the center of attention as other politicians and acquaintances arrive.
=== R019
- Someone holds power over someone, who seeks a new cover for the table, while someone maintains a tense demeanor under scrutiny.
- Towers someone, a man seeking a meal and a conversation, pressures a young woman into accompanying him, citing her injured ankle as a pretext, while secretly planning a romantic dinner.
- The Grand Duke and someone demand deference from someone, who works as a cashier at a restaurant, as he declines their invitation to a masked ball.
- Seltzer's tribal gentlemen watch as someone and his wife someone enter, impressed but wary, while the guests enjoy a lively meal.
- Major someone prowled the hotel lobby like a rabid dog, his smooth-shaven face aglow with a predatory hunger, while the narrator, a someone, watched warily from a safe distance.
- Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
- The Old Gentleman coerces someone into a someone dinner, hinting someone lacks a male heir to carry on the tradition.
- The someone, hungry and boastful, demands food from the campers, who are initially wary but eventually welcome him, revealing someone’s wealth and beauty.
- Someone, a servant, nervously awaits someone choice of a dubious guest for dinner.
- Someone, limping from an accident, accepted someone’s dinner invitation, revealing her true identity as a socialite to gain his attention.
- The Captain demands food from his reluctant butler someone, who suggests they try a restaurant, despite their previous failure.
- A weary traveler haggles with a cab driver over fare, then seeks solace in a ritzy yet overpriced hotel, only to be disappointed by its slow service and overpriced food.
- Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment.
- The guest lies motionless, as the chaotic room attempts to communicate its occupants to him.
- Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story.
- Someone maneuvers someone to a secluded table, while her audience reacts with varying degrees of amusement and skepticism.
- Someone, looking imposing, invites a young man to join him at a someone table in a glittering part of someone.
- The General commands a column while someone, visibly uncomfortable, feigns interest in the General's political musings and culinary inquiries.
- Someone proposes a lavish dinner at a hotel, betting on who can withstand the establishment's displeasure, while someone eagerly accepts the challenge.
- Someone poses, someone bites her lips, someone checks his coat, someone watches the clock as nine approaches, and the dinner party's humor escalates with each course.
- Someone assigns someone to try on coats and hats, while behind the scenes, he arranges a dinner reservation for himself.
- Someone demands payment from someone, who reveals he owns the hotel and offers to make his rooms ready, complicating the dinner party arrangement.
- Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses.
- Someone, now aware of newfound power, returns home to find someone preparing a lavish meal, greeting him with usual boisterousness but sensing something amiss.
- Someone, drunk and confused, barges into the Millionaire’s home, demanding proper someone etiquette from servants and the host, someone, who reluctantly complies.
- Someone awaited someone at the door with a kiss, while he read the evening paper of foreign atrocities, and planned their lavish dinner and evening activities.
- Someone, the host, attempts to placate the aggressive someone, the guest, while someone, the dinner host, tries to initiate a seating arrangement.
- Someone’s crowded dining room hosts a mixed crowd of someone, opportunists, and arrivistes, all clamoring for his culinary and social cachet.
- Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature.
- Someone, the suitor, pressures and then coddles someone, the hungry woman, during their meal.
=== R020
- Lawyer someone demands someone sign documents and discuss family property, while someone resists, preferring to avoid the unpleasant task.
- Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence.
- Someone demands payment from someone for custom-made clothes, threatening to take her away unless she pays, while someone begrudgingly complies, feeling the financial strain of her desire for fashionable attire.
- Major someone confronts the narrator in a bar, forcing him to confront a torn, counterfeit dollar bill, intensifying their hostile encounter.
- Someone thanks someone for saving his daughter's life, requesting the doctor treat her further and threatening to reveal his daughter's flirtatious note to him.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone, boasting of a minor injury to his finger, demands more from the secretary, hinting at his son's future wealth while dismissing old favors.
- The Secretary hands someone a ten-dollar bill, transferring authority to someone, who then directs someone to Black someone, the earner of the reward, as he exits the building.
- A banker desperate for cash extorts a loan shark, who offers him $60,000 in a safe, but warns of potential danger.
- Someone threatens to sit at the protagonist's door until they return, citing curses and financial loss.
- Someone threatens someone with losing his job and demanding repayment of a debt she owes him, while she tries to convince him it is still winter.
- Someone, now someone, pressures someone into accepting his help to cure his aphasia, hinting at a covert treatment.
- Someone threatens to leave someone to seek payment from their adulterous daughter-in-law someone.
- The girl, now visibly defeated, accepts Cork's confession of stabbing someone, revealing her naivety and acceptance of his criminal lifestyle.
- Someone attempts to bribe someone with a thousand-dollar note, but she refuses, leading to a tense interaction between them.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- Someone, seeking revenge for mistreatment by a man who has insulted the lady, agrees to help despite someone’s initial reluctance.
=== R021
- The girl, seeking a meeting, confronts someone over his refusal to entertain her at his home, revealing her desperation and naivety.
- Someone courts the anxious girl, while tensions rise as someone prepares to confront them.
- Someone, disguised as a maid, wheedles someone into lending her clothing to con someone’s wealthy suitor, someone.
- Someone and Violet argued over whether meeting was a mistake as they waited for the bootblack to finish their boots.
- Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status.
- The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead.
- Someone, a shop forelady, rejects a marriage proposal from a wealthy suitor, sparking jealousy from a coworker who had previously invited him to dine.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
- Someone, preparing for a matinée, consults her dresser about a potential evening engagement while someone, intrigued by her wealth, asks for advice on how to spend a thousand dollars.
- Someone, cool in his authority, insists they leave while someone’s uncertain nature holds sway, hinting at her potential marriage proposal to someone’s friend.
- Someone tries to uncover someone’s deception about her true occupation as a laundry ironer, leading to a confession and a shared laugh.
- Someone complains about someone’s lack of practice and monotonous white dress, while someone flaunts his gambling winnings to someone.
- Someone persistently courted someone, a shopgirl, offering her a life of leisure in exotic locations to break her from her mundane existence.
- Someone and someone compete for a position and salary in a laundry, with someone emphasizing her social connections and status, while someone focuses on her personal achievements and the value of her work.
- Someone bargains with someone over payment for her labor, while someone and someone scheme to exploit her, revealing her precarious financial situation.
- Someone wants a purple dress for someone, but Grace prefers red, and they debate the merits of each color.
- Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
- Someone, seeking advancement, navigates the social hierarchy of a fashionable salon while secretly preparing for a potential shift in values.
- Someone, a working girl, debates buying expensive designer clothes with someone, a coworker who dismisses the idea, revealing their differing social statuses and attitudes.
- Someone demands a modeling session for a sick someone, while someone tries to manage the situation and hide her discomfort.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone demands payment from someone for custom-made clothes, threatening to take her away unless she pays, while someone begrudgingly complies, feeling the financial strain of her desire for fashionable attire.
- Someone critiques someone’s outdated clothing, prompting a competitive game of high-stakes clothing swaps between them.
- Someone, seeking to win back his aunt's favor, bargains with money and Aunt someone’s affectionate ring, while secretly courting someone.
- Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions.
- Someone Pry, desperate for attention, coerces Violet someone into a bootblack stand with a promise of a private moment.
- Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner.
- Someone, flaunting new clothes, pressures someone to join her for church, hinting at a secret plan, while he dodges her questions about an upcoming event.
- Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain.
- Someone presents himself as a crook to someone, a loafer, to seek someone’s help in dressing up for a club meeting.
+802
View File
@@ -0,0 +1,802 @@
=== T01
- The reverend sermonized on her sins while her parents held her down, and she felt a mix of fear and liberation as she submitted to dogma.
- Someone, now estranged from Sir, plans to reinvent herself in the world of someone, vowing to surpass former lovers and historical figures.
- Someone seeks a fortune teller, someone, to uncover the truth about his love interest someone, while revealing his own misfortunes and impending troubles.
- The noblewoman hesitates as music from above tempts the hag, who holds power over her, while honor and love try to hold her back.
- Someone reads a slip of paper in someone’s lap, revealing news of her father's gift to her, causing someone to blush and accuse someone of gossiping.
- Someone manipulates someone for information, then flirts with and proposes marriage to someone, who accepts, complicating someone’s suspicions.
- Papa, Mamma, and the older girls eagerly read the someone paper, while someone and someone focus on different sections, each seeking information for personal or family interests.
- Someone, her mother, and father discuss her career as a book reviewer, with someone eagerly participating in family someone readings of religious texts.
- Someone and someone covet someone, engaging in secret readings that transform the verses into a sacred text, unaware of its illicit origins until their marriage and move to New someone exposes them to its forbidden nature.
- Someone covets someone’s affection, insisting she not be jealous of his past feelings for her, while someone reassures him of her loyalty and sees their relationship as a divine ideal.
=== T02
- Someone juggled urgent business calls and frantic office tasks while Pitcher waited for promised samples, each hoping their day wouldn’t be as chaotic as the broker’s.
- The landlord summons someone for eviction, while she seeks clues in a detective story, unaware her luck has run out.
- Someone demands to go out, questioning his father's authority and criticizing his mother's explanations, while his father reluctantly agrees, hinting at someone’s mental state.
- Someone, annoyed, refuses to hire a new stenographer, dismissing Pitcher for disregarding his previous instructions.
- Tiger" someone, the senior son of the house, prepares for work while his younger brothers sleep, unaware of the strike affecting his father's marble-cutting job.
- Someone, boasting of a minor injury to his finger, demands more from the secretary, hinting at his son's future wealth while dismissing old favors.
- Someone’s father, wealthy but controlling, disowns him, forcing someone to support a factory girl and gamble on his art career.
- Someone demands answers and a cigar, while Lawyer someone holds power over someone’s estate and schedules.
- The father threatens to quit his plumbing job to avoid paying high wages, while his son continues to work diligently despite the family's financial struggles.
- Someone, reluctant to leave his job, is pressured by someone and someone to resign, but insists he has found his true calling and will remain.
- Lawyer someone demands someone sign documents and discuss family property, while someone resists, preferring to avoid the unpleasant task.
- Someone, a tenant, confronts Lawyer someone over the subletting of his father's properties in the shopping district, now occupied by young working girls, insisting he must act before it's too late.
- Major someone demanded drinks, then used genealogy to avoid paying, leading to a clerk suggesting he be evicted for being a loafer without known means of support.
- Rita and someone complain to someone about being forced to stay with someone, who holds power over their financial situation and future, while criticizing his neglect and lack of affection.
- Someone holds power over someone and someone, threatening to evict them if someone does not find a room.
- Someone threatens to sit at the protagonist's door until they return, citing curses and financial loss.
- Someone, the lawyer, left her office to pursue a relationship with someone, the violinist, who moved in above her, bringing much-needed life to her quiet house.
- The Secretary demands action on urgent matters, leading to conflicting priorities and social interactions among military and diplomatic personnel.
- Someone seeks employment, but is warned by a protective agency against accepting offers, complicating her search.
- Someone threatens someone for encroaching on his territory, warning him to stay out of his district or face consequences.
- Someone brings unexpected mail to someone apartment, including a threatening letter and a photograph, causing someone to become agitated and destructive.
- Someone seeks work, faces a conflicted decision as a mysterious job offer pits her against a stern, threatening figure.
- Someone, a typist in the city, visits old Farmer someone Farm to court his son someone, a modern farmer, only to find her plans disrupted by work duties.
=== T03
- The young man seeks financial advice from the someone, a noble, in exchange for solving a riddle about his mundane job at someone’s shop.
- Someone tries to explain a complex fortune-telling scenario to a man, who then dismisses them both as suspicious and untrustworthy.
- The Grand Duke demands explanations and promises fortune for someone, who questions the agency's methods and loyalty.
- A mathematician and a businessman debate the nature of reality, with the former questioning the latter's assumptions.
- Someone, the businessman, demands repayment for a gold brick he sold, while someone, the accountant, argues the impracticality and futility of such repayment.
- Someone, with $140 in his pocket, sat on a bench in someone Square, amused by an old man begging for a dollar, sparking a conversation about work and the world's potential for wealth.
- Auctioneer-like Sitting Bull haggles with a 1899 five-dollar bill for a 1899 five-dollar bill, while a 1899 two-dollar bill offers to share its pocketbook story.
- Someone, seeking to repay his father's ill-gotten wealth, consults someone, who explains the futility of restitution to the robbed.
- The grocer’s clerk argues with a customer over a small change, highlighting the power dynamics in a mundane transaction.
- The fat man scoffs at the fisherman's efforts, while the businessman eagerly awaits his catch, each confident in their superior methods.
- Someone demands repayment and compensation for all losses incurred by someone’s bakery failure, escalating from $1,000 to $100,000, as a test of someone’s Socialistic beliefs.
=== T04
- The cop, tasked with maintaining order, confronts a young man who questions the cop's role and civic duty, leading to a conversation about the city's unrest and the cop's mundane nightly duties.
- Someone and someone Green debate the benefits and drawbacks of attending a municipal free night outing lawn party, while I explain it as a community event to avoid the crowded North Beach fish fry.
- Someone confronts a racist encounter at the pier, leading to a series of misfortunes and further social strife on the boat.
- Someone, a man from the North, confronts a man from the West, challenging his identity and social status.
- Someone, reduced to poverty, seeks solace in the public parks while May, a schoolgirl, breathes austerity among the trees.
- Someone, seated on a park bench, entertains a vagrant who has just arrived, revealing his precarious financial situation and delusions of wealth.
- Officer someone evicts the diverse families from their comfortable someone Flats homes, forcing them to sleep in a park under the threat of further eviction at the next election.
- Hastings someone pityingly observes the ragged park visitors while plotting to improve their lot with wealth he does not possess.
- Tenants resist eviction ordered by the City Club and Draying Company, sparking conflict and protest in the park.
- The man confronts the Park someone about illegal park users, sparking a conversation about public space usage and social norms.
- A Negro waiter at a dinner asks if there is anything to do in town, learning the nightlife is closed, leading him to explore the city streets during a race riot.
- The philosopher tries to explain celestial phenomena to someone, who becomes angry and insists on leaving, leading to a confrontation.
- Someone secures a position for someone as a mounted policeman in Central Park, leading to someone’s attraction to the officer.
- Mounted Policeman someone, desperate for his badge and honor, confronts someone, his friend and rival, in the park, while someone plans to steal his identity and position.
- Someone, now a successful city official, confronts someone, now with a different facial feature, at a street corner, recalling past times.
- The argument between someone and the red-haired, unshaven man over someone’s street playtime escalates into a competitive betting scenario at a saloon.
- Someone and Brick someone observe cautious etiquette at someone’s bar while tensions rise between rival gangs on the lower East Side.
- Someone, a rancher, confronts former friend someone, a businessman, over someone’s new urban manners and social status, leading to a bar encounter.
- Someone refuses someone entrance to the White Lane, leading to a heated confrontation with someone over someone’s questionable behavior.
- Someone demands someone attend to business matters, while someone and someone argue over her drinking habits, leading to a moment of vulnerability in someone’s park.
=== T05
- Someone, a successful "crook," meets someone at a café to secure a favor from someone, a legendary cow-puncher, before leaving for the West.
- The coachman of a funeral carriage lies to a man hired to drive him, attempting to extort money while feigning sympathy for a wealthy woman's financial struggles.
- Someone bargains with someone over payment for her labor, while someone and someone scheme to exploit her, revealing her precarious financial situation.
- Someone, seeking to win back his aunt's favor, bargains with money and Aunt someone’s affectionate ring, while secretly courting someone.
- Someone, now wealthy, seeks advice on what to do with a thousand dollars after inheriting a fortune from his deceased uncle's legal firm, which includes a bequest to a microbe and a ward, leaving him perplexed about his newfound wealth.
- The Captain, a well-fed man, seeks someone, suspecting him of graft, while someone pressures him to testify against Inspector someone for a bribe.
- Someone searched his pockets for money, finding none, as a man approached him, revealing he had only two pennies for dinner.
- Someone, desperate for his wife's dollar, conspires with someone and someone to steal it from their married friends in Union Square.
- Someone presents himself as a crook to someone, a loafer, to seek someone’s help in dressing up for a club meeting.
- Detectives cornered someone, coerced a confession implicating someone, and arranged a meeting with someone to return a twenty-five-thousand-dollar inheritance.
- Fifth Avenue millionaire someone accuses his wife someone of "graft" for accepting a valuable diamond brooch from a business associate, while someone himself is revealed to be a front man for a sidewalk merchant someone.
- Someone, a panhandler, seeks financial advice from someone, a former high-flyer now destitute, as someone, his wealthy uncle, offers him a comeback.
- Someone, desperate for restitution, hires detectives to find heirs of the miner who sold him land for $125 that he later sold for $10,000.
- Someone, deceived into thinking someone is a fellow member, blackmails someone for sexual favors in exchange for protecting him from his true identity as a gangster.
- Someone, disguised as a maid, wheedles someone into lending her clothing to con someone’s wealthy suitor, someone.
- Major someone’s death sparks gossip and suspicion, with one man accusing black men of his murder over a missing fifty dollars.
- Someone approaches an abandoned tire on Fifth Avenue, hoping to exploit a wealthy motorist's need for it, while others jeer at the speeding car.
- Old someone had hidden funds, while someone took only his salary; the New someone girl was engaged, and someone and someone ended in a half-Nelson.
- Someone Valentine, the only witness to someone death, is suspected of embezzling $647,000 and someone lover someone is convinced of his guilt.
- Someone, seeking to exert influence, charitably donated large sums to the Universal Benevolent Association of the Globe, only to be outdone by a lesser-known donor, sparking jealousy and a playful prank.
- A worn stack of currency moves through various illicit and sometimes charitable hands, always seeking a better fate.
- Someone, a businessman, pays someone for a successful con, questioning if someone despises money despite his confident denial.
- Someone, a wealthy man, manipulates someone into posing as a criminal to gain attention, revealing his own ambition to be noticed through outrageous and costly efforts.
- Detective resigned after being accused of embezzling funds from his former partner someone, who plans to negotiate a crime syndicate's illegal activities and evade police scrutiny.
- Someone, seeking to launder his stolen money, coerces someone into a tailor appointment, while someone tries to lure someone into a club dinner.
- Someone, a Wall Street speculator, seeks an unconventional meeting with a shady Wall Street "crook" for a private conversation.
- Someone presents a fake $950 roll to "Bunco someone," who quickly exposes it as fraudulent, leading to suspicion and further intrigue among the men.
- Silver, a con artist, offers someone insider information on the town and its people in exchange for their financial support.
- The Man from someone, flush with cash, pursues the Girl from someone’s, a beauty on Sixth Avenue, driven by desire and the urgency of his impending return to the North.
- Someone executed a series of trades for financial gain, while someone was entangled in a scheme to extort money from someone through a fabricated love affair.
=== T06
- Cork attempts to persuade a reluctant Ruby to accompany him to her apartment, using flattery and vague references to his social status to gain her trust.
- Someone, now a star, faces competition from actor someone for her lead role in "someone by Gaslight.
- Someone pressures someone Cherry to invest in improving her stage sketch, promising it will triple their earnings, while secretly manipulating its development.
- Ruby someone, a defiant young woman, challenges Cork about smoking in his bar, insisting it is acceptable despite his disapproval.
- Frank pulled down green shades, someone stood guard, and Cork and the bookbindery girl feigned casual conversation as the night's illicit activities escalated.
- Cherry, a stage actress, pressures someone to pay her more for playing a different role in his sketch, threatening to leave the theater unless he agrees.
- Lucy refused to reveal her past as an actress to her friend someone, fearing scandal, yet admitted to her happy life in the village until someone’s gossip revealed someone’s past love affair.
- Someone, a stage actress, confronts her sister someone about quitting the theater after a long career, expressing frustration with male colleagues.
- She dismisses the backstage world, criticizing leading ladies, chorus girls, and actors, while revealing little about their true lives.
- Someone flatters and flirts with the actress, securing a role while her companions and rival, Summers, are left in the dark.
- The girl, now visibly defeated, accepts Cork's confession of stabbing someone, revealing her naivety and acceptance of his criminal lifestyle.
- The chorus girl despises the men who patronize her shows and clubs, envies actresses with more secure positions, and hates the leering, crude behavior of theater audiences.
- Someone pressures Ruby into admitting her smoking habit, then offers to be her moral compass despite her admission.
=== T07
- Parkenstacker opened the meeting with flattery, but the girl responded with icy disdain, challenging his assumptions and curiosity.
- Someone, the socialite, feigned a casual dinner with someone, while secretly planning to meet her lover at a discreet location.
- Someone courts the anxious girl, while tensions rise as someone prepares to confront them.
- Someone’s engagement to someone put someone in a position of curiosity and suspicion, as he remained distant and secretive despite their intimate park bench meetings.
- Someone, a poet, challenges his neighbor's romantic display, leading to a clandestine encounter where he spies on her through his window.
- Cork someone, bored in someone’s, strikes up a conversation with a mysterious girl who decides his fate with a glance.
- Someone sat entranced by music and conversation, while someone’s influence remained distant, and her friends reveled in someone revelry.
- General someone, someone’s ideal knight, looked away as she offered him jam, reminding her of his absence in someone.
- Someone searched for his daughter someone, who had eloped with a wealthy suitor, while his wife someone feigned ignorance.
- A summer hotel's diverse crowd, from young artists and naval officers to fashionable young ladies and a famous milliner, eagerly sought someone’s attention, each hoping to secure her favor or arrange her departure.
- Someone persistently courted someone, while she temporized, unaware a date was imminent.
- Someone, a lady in her late twenties, diplomatically turns down a man's romantic overtures while subtly arranging a clandestine meeting with him.
- Someone’s failed job applications and heartbreak led her to someone, who proposed marriage, prompting her to seek solace in the unlikely embrace of someone in the skylight room.
- Hank someone, a rancher seeking a mate, approaches someone, a shy girl, only to be interrupted by a cop who sees him talking to her.
- Someone, the poet, schemes to meet the mysterious woman who he believes has returned to him, while someone, the businessman, arrives early for his date, frustrating someone’s plans.
- Someone attempts to court someone, but someone interrupts their moment by falling off a cliff.
- Someone, the chaperone, balanced someone and someone’s differing priorities as they sought excitement, with someone advocating for marriage and financial independence, while someone preferred her position and learning opportunities.
- Rivalry among regulars for someone’s attention threatened to overshadow her, as she received multiple invitations and gifts, while someone, her friend, remained unremarked upon.
- Someone, uncertain about his fiancé's wedding plans, pressures someone to find a drug to ensure Rosy's attendance, while secretly preparing for their elopement.
- The girl, seeking a meeting, confronts someone over his refusal to entertain her at his home, revealing her desperation and naivety.
- Someone, desperate to win someone back, seduced her at her wedding before leaving with her soon-to-be-husband Frank.
- He searched the room for her, finding only objects, while she remained invisible, tantalizing him with scent.
- Someone proposes a scheme to leave someone, pretending to flee with an understanding lover, while someone reluctantly agrees to hide in the dining room to observe her reaction.
- Someone persistently courted someone, a shopgirl, offering her a life of leisure in exotic locations to break her from her mundane existence.
- Someone Pry, desperate for attention, coerces Violet someone into a bootblack stand with a promise of a private moment.
- Someone, the Girl from someone’s, chose a seat away from prying eyes, while the smitten Man from someone closed in on her.
- Someone calculated someone’s distance, eyeing her as a potential victim for his planned blackmail.
- Someone, seeking comfort, lies to the girl, claiming he mistook her door for a piano tuner's, to keep her company despite his intention to leave.
- Someone, charming and at ease in a café, withheld crucial information from her companions, raising suspicions about her true intentions.
=== T08
- Someone, now retired, watches his vast fortune accumulate through his private secretary, while he builds a palace and seeks spiritual guidance amidst his wealth.
- Someone, the elegant waitress, serves meals to the bourgeois families on Eighth Avenue, while someone, the gruff owner, handles their payments.
- Prince someone paced the park, his shoes worn, as he considered his options for funding his decrepit wardrobe and neglected estate.
- Prince someone sat on a bench, envying the wealth and power he could wield but choosing instead to mingle with the poor and grant them unexpected largesse.
- Someone leveraged her deal with someone’s restaurant to secure a typewritten menu for her room, securing both meals and a daily forecast of her patrons' meals.
- Someone, the real estate agent, holds power over potential tenants, showcasing properties and dismissing those who cannot afford them.
- Someone, a lodger, spends lavishly on personal items and meals, defying her modest rent by overspending on luxury goods and dining out frequently.
- Someone, a high-status guest, monopolizes the hotel's services, making employees her slaves and guests her subjects.
- Someone’s mother rents out furnished rooms to nouveau riche immigrants, including the flashy someone, in a run-down building where daily meals are often meager.
- Someone, the political mogul, welcomed patrons but was distracted by someone’s fix, while someone, his subordinate, reveled in a minor setback.
- Someone Brown lounged in his opulent apartment, eyeing the besieged mansion across the garden, while his old neighbor refused to sell his home.
- Someone, the painter, cut up the room with a waiter, while others held power over their respective domains.
- Someone and someone, former chums now wage-earners in a cheap boarding-house, are introduced as a pair of modestly dressed ironers contrasting with their expensive accessories.
- Someone ironed his evening suit while his modest earnings funded his nights out in finer attire.
=== T09
- Someone, enraged by an owl attack, confronts an elegant stranger in his home, revealing he nearly solved a mystery involving the Van someone family.
- Someone and the shy one huddled together, while someone and someone worked in secret, risking their venture in someone.
- Someone and someone discuss renting a room to a suicidal young man, with someone withholding information from him.
- Lodger No. 2, a charming but mysterious man, seduces someone with tales and innuendo, leading her to believe her husband has returned, despite his long absence.
- Someone awaited someone at the door with a kiss, while he read the evening paper of foreign atrocities, and planned their lavish dinner and evening activities.
- Someone and someone sit at someone’s table with someone and someone, while someone and someone observe, with someone’s reputation as a someone princess at stake.
- Someone, seeking answers, confronts an enigmatic someone who offers him a card, leading to further mysteries and adventures.
- Someone kindly invites young squire to share secrets of his strange behavior in crowded city, sensing deeper motives beneath surface.
- Someone, Lady, and someone engage in formal social rituals while someone explains something to someone, revealing someone’s disabilities momentarily vanish.
- Guests at the hidden someone hotel seek seclusion, while a chef prepares gourmet meals, fearful of discovery by summer resort seekers.
- The someone residents struggle to maintain social order in the dark, resorting to makeshift solutions and alliances to survive the night.
- Someone recounts how he met someone, a journalist, at a someone garden party hosted by a grand vizier, where they engaged in a clandestine conversation.
- The sealskinned gentleman invites someone into a lavish, mysterious mansion where someone discovers an array of strange and magical objects.
- Someone waits as someone manipulates his guests, including a mysterious eye and a radiant someone, in his opulent yet cluttered apartment.
- Roomers jeered at someone, while someone and someone sat aloof, someone’s popularity dependent on their reactions.
- Someone, seeking to avoid suspicion, meticulously planned his disappearance, altering his wardrobe to confuse potential suspects.
- Someone silently returned to the table, casting suspicious glances at someone, who had cut out drinking, while he tried to maintain the evening's conversation.
- Someone seeks to confront an invisible maniac, while I caution him and arrange for his return home with the someone.
- Tom someone and someone searched the inaccessible someone monastery for someone, intrigued by rumors of an ancient, untraceable someone.
- The tenant waits in a musty house filled with various sounds and scents, confused by a sudden, strong mignonette smell that seems to call to him.
- Someone maneuvers someone to a secluded table, while her audience reacts with varying degrees of amusement and skepticism.
- Someone demands to know why someone, now a monk, is in cold storage, highlighting his former status and power.
- Someone, a surveyor, confronts a dimly lit green door, bracing for potential danger and intrigue within a room marked by extreme poverty.
- Someone’s lodger, someone, engages in secretive activities, while someone and someone debate his identity and background.
- Someone sat in his flat, seeking conversation to spice up his life, while someone complained about the smells from across the hall.
- Ivan questioned everything, from women's dress cases to a mythical man, seeking concrete answers that led to isolation and frustration.
- Someone invites an anonymous guest to dinner, revealing he has a secret, prompting the guest to share his own dramatic life story.
- The housekeeper welcomed the young man to the room, revealing its history and amenities despite his skepticism.
- He searched for a tenant, found nothing, and confronted the housekeeper about a previous occupant.
- Someone and Van someone sat at separate tables in a luxurious dining room, each aware of the other's power and influence, while someone’s discontent mirrored the social hierarchy's rigid structure.
- He demanded information about a missing young girl from the room's housekeeper, who evasively denied knowing her.
- Someone Ray barged into someone’s home, seeking information about her whereabouts and eager to catch up, despite their professional separation.
- Con, normally assertive, is tongue-tied and abashed before someone, while his colleagues someone and someone conduct secretive alchemical experiments in a hidden back room.
- Someone holds power over someone, who seeks a new cover for the table, while someone maintains a tense demeanor under scrutiny.
- Someone, unsure of someone’s identity, invites her to dinner, leading to a clandestine evening of drinks and questions about her true nature.
- The man upstairs played music to mask the couple's quarrel, while someone prepared to read, unaware her landlady had already answered the unexpected visitor.
- The guest lies motionless, as the chaotic room attempts to communicate its occupants to him.
- Someone, an actor, attends a matinee to watch his less talented colleagues perform, feeling increasingly isolated and frustrated.
- Someone ascended to her room, passing someone who was performing a trick, unaware of her presence, and he was unprepared for her judgment.
- Someone, a delegate at the someone National Convention, meets a distressed woman and her companion, who request his help in a private room.
- Someone, a servant, nervously awaits someone choice of a dubious guest for dinner.
- Characters decipher clues in a threadbare room, revealing guests' fury and violence against their own home.
- Someone, now aware of newfound power, returns home to find someone preparing a lavish meal, greeting him with usual boisterousness but sensing something amiss.
=== T10
- Someone, a hat cleaner, confronts the caliph over suspicion and job prospects in the Big City.
- Caliph offers young man education and financial support for studies in exchange for future business arrangement.
- Old Hoss smiled confidently, ordering his younger brother to write the winning story, while secretly reading and dismissing his brother's efforts as worthless.
- Caliph someone, desperate to assuage his guilt over his wealth, made numerous charitable donations and bribes, but his heart remained troubled, leading to conflicts with his staff and legal troubles.
- The Caliph someone al-Rashid and someone von someone vie for control of Fourth Avenue, a forgotten street that symbolizes the clash between old-world relics and modern decay.
- Someone demands courses from someone, viewing him as a potential Caliph to be entertained, while someone sees this as a common occurrence in New someone.
- Someone, angered by the caliph's insolence, challenged him to a fight, leading to a brawl and arrest involving multiple characters.
- Caliphs control someone, exploiting beggars and paupers while hiding their own misdeeds, leading to a decline in storytelling.
- Old someone, now caliph, seeks to square a ten thousand dollar debt by any means, while his backstory hints at a transformation from a coal mine breaker boy to a wealthy magnate.
- Old Tom someone, now a caliph with $42 million, seeks new thrills beyond clubs and dinners, craving experiences money can’t buy.
=== T11
- Someone tells her daughter about someone’s death, revealing he had been painting a last ivy leaf before his fatal illness.
- Someone thanks someone for saving his daughter's life, requesting the doctor treat her further and threatening to reveal his daughter's flirtatious note to him.
- Doctor someone carried the injured astronomer home, while someone crumbled in his wake, her curiosity about his words unfulfilled.
- Someone, a timid pharmacist, secretly desires Rosy, someone Riddle's daughter, while someone, a customer and friend, also pursues her, complicating someone’s situation.
- Someone, now a patient, signed a contract for ghostwriting while slipping, prompting her lawyer to summon a doctor and a team of helpers.
- Uncle someone extorted money from someone through false promises and coercion, while the doctor exploited her financially and emotionally.
- Someone proposes to someone’s daughter someone, revealing he receives romantic favors in exchange for information about her whereabouts.
- Someone reveals a portrait of someone to someone, who agrees to accompany her to someone next someone to help her cope with her grief.
- Someone, desperate for his girl's recovery, searched the room for a means to revive her, offering her a feast of food and drink.
=== T12
- Young men at someone’s diner exchanged witty banter for cash, with older men offering more personal favors to curry favor.
- Someone’s crowded dining room hosts a mixed crowd of someone, opportunists, and arrivistes, all clamoring for his culinary and social cachet.
- Someone, the charismatic waitress at someone’s, held sway over the chaotic dining room, revered by patrons as a living legend.
- Every someone Day for nine years, the Old Gentleman found someone on his bench and took him to a restaurant for a big dinner.
- Someone, now the center of attention, commands wine for his table and others, flaunting his newfound power.
- Someone watches as society buds and bon vivants admire his company, while he eagerly anticipates his return to his usual upscale dining.
- My friend invites me to a restaurant, hinting at a Man About Town, while I seek out my own social circle instead.
- The New someone Fire Department holds the upper hand in moral and practical codes, as the someone and Round Table ideals are obsolete, while the law upholds the Fire Department's unwritten rules.
- Old someone, with sharp eyes and a vast memory, welcomed someone, hinting at lucrative business deals while subtly reminding him of past dealings.
- Seltzer's tribal gentlemen watch as someone and his wife someone enter, impressed but wary, while the guests enjoy a lively meal.
- André, once a someone waiter, transformed his restaurant into a bizarre spectacle, attracting someone who flocked to see him as the Grand someone of someone, until he reinvented his establishment as a high-end dining experience for wealthy patrons.
- Someone poses, someone bites her lips, someone checks his coat, someone watches the clock as nine approaches, and the dinner party's humor escalates with each course.
- Someone and someone dined at tables d'hôte, befriended a couple, and spent evenings dancing, with someone learning to drink and someone to drink more, all while living in a run-down someone.
- The man in the basement invites travelers to his home for refreshments, offering hospitality despite his superstitious beliefs.
- The old friends, now in their seventies, meet at the same restaurant to rekindle their twenty-year-old promise.
- Someone, the bar owner, wields power over his guests, manipulating them with charm and authority.
- Con someone works the bar while Con dances for the elect, a saloon where teetotalers seek refuge in a slot restaurant.
- The Old Gentleman hosts an annual someone feast for his protégé someone, a tradition recognized by staff.
- At someone, the someone chef serves a fish dish enhanced by someone methods, while the Society for someone detects an ethereal aura around the establishment, captivating diners with its unique flavors and mysterious aftertastes.
- A troupe manager hosts a convivial gathering of retired performers in his caravanary, seeking engagements for the next season.
- A lone diner at a secluded table entertains thoughts of cosmopolites amidst a lively café scene, patrons and staff mingling in a mix of elegance and casualness.
=== T13
- Someone C.
- The Millionaire seeks to solve the disappearance of his rag-doll, while someone examines the clues left by his terrier, Flip.
- Someone von someone seeks to outwit Bill someone and someone by guessing the riddle, while someone, the harness maker, tries to stump them with the same puzzle.
- Engine Company No. 99 grapples with a troublesome horse, causing friction and suspicion among the firefighters, who blame it for a recent injury and question its national origin.
- The young man and Bill compete to solve a riddle to win a place at a wealthy woman's daughter's birthday party, with the stakes including marriage to the woman.
- Someone, a piano salesman, repeatedly accepts cards from a mysterious someone, each bearing the same cryptic message "The Green Door," leading him on an increasingly suspicious quest.
- Someone plots to elope with Rosy, bribing someone to poison her, while someone informs someone Riddle, who will ambush them.
- The someone seeks help in solving a riddle about the longest-laying hen, while the young man dismisses it as trivial and refuses to assist.
- Someone schemes to bribe Rosy with a rumored love potion to prevent her from leaving Old Man Riddle.
=== T14
- Someone, seeking employment, challenges someone, a serious young electrician, to a vaudeville night for a chance to impress his wealthy friend someone.
- Someone wants a purple dress for someone, but Grace prefers red, and they debate the merits of each color.
- Someone and someone visit someone’s store, with someone showing off his hat, while someone questions the value of someone’s offer for a rooftop view.
- Someone demands a strict business partnership, while someone Cherry proposes investing her savings for passive income.
- Someone, a wealthy young man, debates the merits of spending money with his friends, acknowledging its power but also its limitations in social circles.
- Someone complains about someone’s lack of practice and monotonous white dress, while someone flaunts his gambling winnings to someone.
- Someone, a customer at the someone hotel, negotiates payment for a dress with someone, a hotel employee, while discussing a weekend trip to someone Island.
- Someone, a factory worker, eagerly awaits her someone night dance with someone, a fellow worker and close friend, despite someone’s awkwardness, to impress her boyfriend someone.
- Someone debates marriage prospects with someone, both uncertain about their future despite clear feelings.
- Someone, preparing for a matinée, consults her dresser about a potential evening engagement while someone, intrigued by her wealth, asks for advice on how to spend a thousand dollars.
- Someone critiques someone’s outdated clothing, prompting a competitive game of high-stakes clothing swaps between them.
- Someone, flaunting new clothes, pressures someone to join her for church, hinting at a secret plan, while he dodges her questions about an upcoming event.
- Someone, worried about money and health, persuades someone to sleep near him in the Square, while someone offers to help secure a job reference for someone.
- Someone, a department store clerk, eagerly plans a dinner date with someone, hoping to impress her friend someone, despite having only fifty cents left from her meager weekly wage.
- Grace insists on purple for her dress, sparking a disagreement with someone, who believes purple is just as valid a choice as any other color.
- A young man and a girl wait impatiently for a fairy to grant them a moment from their wedding day, while a megaphone man preaches about millionaires.
- Someone overhears professors discussing a student's plan to purchase a sleeping powder, leading him to question the value of philanthropy and seek his own charitable solution.
- Someone, a working girl, debates buying expensive designer clothes with someone, a coworker who dismisses the idea, revealing their differing social statuses and attitudes.
- Girls prepare for a black dress funeral gala, while someone feigns interest to gain insight into someone’s grief.
- Silver and someone pool their capital to secure an introduction to someone.
- Someone proposes to the first white apron he sees, while someone and someone scheme to buy a someone cottage with their ill-gotten gains.
- Someone, a hunter, persistently pursues game while someone, a laundry worker, saves money for evening pleasures, someone her loyal companion.
- The poet seeks advice from someone about his failed ties and unfulfilled prophecy, while a newsboy offers practical advice about buying a birthday present for someone.
- The young man seeks advice on choosing between two wealthy suitors, while the girl, of a higher social class, considers his appeal despite her own preferences.
- Someone pressures his daughters into starting work, while someone and her friend showcase their skills and ambitions.
- Someone, the Secretary of War, invites someone, an artist, to a meeting at someone’s to discuss a lucrative arms deal, while someone seeks to elevate himself to someone’s social and professional status.
- The sisters argue over their future, with the older sister revealing she wants a financially secure yet ambitious husband, while the younger dreams of a perfect but impractical match.
- Someone, a young man engaged to a parlor maid, seeks to impress a wealthy man by visiting his house, offering investment advice, and introducing himself to the man's daughter.
=== T15
- Someone assigns someone to try on coats and hats, while behind the scenes, he arranges a dinner reservation for himself.
- Towers someone, a man seeking a meal and a conversation, pressures a young woman into accompanying him, citing her injured ankle as a pretext, while secretly planning a romantic dinner.
- Someone placates someone, a panhandling streetwalker, by taking him to lunch at a hotel, while secretly observing and possibly exploiting him.
- Someone and someone engage in a card game over dinner, with someone winning and planning to use a pretext to escape.
- Princes and queens, envying someone’s simple meal, watched as she boarded a cab, only to be met with a demand for payment.
- Someone pressures Con and someone to drink more alcohol to continue their failed experiment, leading to a fight in the bar.
- Old someone, a reluctant churchgoer, pays for drinks with money offered to a church, which someone, the proprietor, refuses, leading to a confrontation with a beggar woman.
- Someone, with his wealth and charisma, commands the someone as he greets his lieutenants, who are intoxicated by his false camaraderie, while someone, now delirious, pledges his loyalty with a drunken gesture.
- Someone, desperate for a date, pleads with his father for help in securing a romantic encounter with a woman, revealing his financial desperation and social constraints.
- The someone, hungry and boastful, demands food from the campers, who are initially wary but eventually welcome him, revealing someone’s wealth and beauty.
- The Captain, soaked and disheveled, seeks advice from someone on how to avoid drinking the foul-smelling substance he found, revealing his desperate financial situation.
- Someone, a free-lance typewriter, weeps over her restaurant bill as she contemplates the absurdity of ordering an oyster with a sword.
- Someone, desperate for funds, pressures someone into loaning him money and drinking with him, while someone tries to maintain control over the dinner expenses.
- Madam, the someone challenges someone to eat the roses he brought someone as a salad, while someone must write the cards despite her fainting spell.
- Someone, with a dime in his pocket, joins a dinner party invited by four people, who surround and envelop him, while a fifth man with an umbrella watches from the crowd.
- Big someone" someone reluctantly agreed to go out for dinner after his wife insisted, challenging his usual reluctance to leave the house.
- Someone, seated at a restaurant table, manipulates someone into buying drinks while trying to sell his ranch.
- Someone manipulates her housekeeper someone to obtain tea and sugar, while hiding a conflict with a man in the house.
- Someone, the suitor, pressures and then coddles someone, the hungry woman, during their meal.
- Someone, someone, and the wan Bed Liner negotiate over money for someone to help a sick man, revealing complex family dynamics and financial desperation.
- Someone, now someone, pressures someone into accepting his help to cure his aphasia, hinting at a covert treatment.
- Someone invites someone to dine with him, setting a someone evening at seven for a potential romantic engagement.
- The Captain demands food from his reluctant butler someone, who suggests they try a restaurant, despite their previous failure.
- Someone flaunted his earnings while someone, burnt by someone’s antics, explained her injury to him.
- Someone, the host, attempts to placate the aggressive someone, the guest, while someone, the dinner host, tries to initiate a seating arrangement.
- Someone, drunk and confused, barges into the Millionaire’s home, demanding proper someone etiquette from servants and the host, someone, who reluctantly complies.
- The bartender accuses someone of being part of someone’s come-on squad, while someone tries to secure change for his valise containing rural clothes.
- Old someone hands a tainted bill to a woman, who then runs to a bakery and spends it on extravagant treats.
- Someone demands payment from someone, who reveals he owns the hotel and offers to make his rooms ready, complicating the dinner party arrangement.
- Someone demands a dish of dandelions from the proprietor, revealing his identity through a typewritten error to someone and someone.
- The driver demands extra payment, leading to a heated argument between him and the passenger over fare.
- Someone proposes a lavish dinner at a hotel, betting on who can withstand the establishment's displeasure, while someone eagerly accepts the challenge.
=== T16
- Someone, limping from an accident, accepted someone’s dinner invitation, revealing her true identity as a socialite to gain his attention.
- Someone, manager of a New someone house, praises someone and Cherry as reliable, gentlemanly performers, yet someone secretly plans to leave the circuit for a more prestigious career.
- Someone introduces her new beau, someone, to the Clover Leaf Club members, who judge him based on his physical prowess and social status.
- Someone, a newcomer to the someone, navigates its exclusive social circle with tact, forming an acquaintance with someone.
- Big someone coveted social acceptance from the titled nobility of someone’s sport world.
- Bill Summers, a newcomer to town, ingratiates himself at someone’s table with exaggerated nostalgia and gossip.
- Someone, alone in New someone, seeks solace from someone’s company in the park, while he reveals he has a long-lost friend named Count someone whom he hopes to introduce to her.
- Someone married someone Van Der Pool, scaling the social someone to reach her high above the reach of others.
- Someone, leader of the association, held power over its members, who feared him but also admired his athletic prowess and social connections.
- Someone, a summer student, engages Reverend someone in a summer village, with someone’s charisma and unconventional behavior sparking their romance.
- Big someone, unsure of his new wife's identity, decided to flaunt her at his usual haunts to impress his social circle.
- Someone’s rise to prominence in the city led to his assimilation into its social elite, yet he remained an outsider in its heart.
- Big someone" attends social gatherings with his fellow someone, avoiding his wife at home.
=== T17
- Someone gazed at the unchanged room, recalling his past with Lady, while someone announced her upcoming marriage.
- Con returns to the back room after drinking a mysterious golden liquid, finding someone upstairs and preparing to propose marriage.
- Someone apologizes to someone for a drunken incident, but she rejects his apology, choosing to remain distant and resentful.
- Someone, a someone head-waiter, proposes to someone, a New someone, after impressing her with his culinary skills.
- Someone, millionaire, felt both flattered and awkward as he encountered someone, a shopgirl, in a glove shop, realizing he had no social means to propose to her.
- Someone and someone return home after eloping, leaving someone a ticket and pants as wedding gifts.
- Frank, wounded and enraged, violently rejects someone, who flees the scene, leaving the audience to ponder their own fates.
- Someone, now married to someone, continued to listen to someone’s tirade while a customer complained about the price at a bakery.
- The bride desires a peach from her distant lover, while he holds power over her marriage and her desires.
- Someone proposed to someone, who initially laughed but then accepted, revealing they had secretly married the night before.
- Someone, fearing her impending marriage to someone, confesses her deception involving a fake engagement to a deceased Count, while someone remains skeptical and forgiving.
- Someone, head clerk and health crank, desires to marry one of the ten young women in his store, each vying for his attention and influence.
- Benedick, frustrated with his unrequited love, insults someone, a woman he dislikes, while someone mocks his love-loving nature.
- Someone, the wealthy suitor, pressures and manipulates someone into marriage, while withholding gifts and control, leaving her in a financially dependent and emotionally vulnerable position.
- A wealthy eccentric banker struck down by fortune in someone’s restaurant is tended by a beautiful cashier who wins over his elderly, childless wife.
- The bride, revered as the certified check, holds power over the wedding presents, while the captain of the cruiser addresses the passengers with sights of the bustling metropolis.
- Someone declines Big someone’s wedding invitation, citing a reason related to politics, despite someone’s encouragement.
- A clerk desires a woman, but her guarded responses and insincere explanations threaten to extinguish his burgeoning infatuation.
- Someone resigned her cashiership to someone, who eagerly accepted and promised to lavish her fortune on the adoptive couple.
- Someone proposes postponing dinner indefinitely, revealing he is leaving for a world voyage to escape uncertainty, while someone expresses skepticism and hints at his own secret marriage.
- Uncle expects nephew to end engagement with heiress someone to save face, but nephew refuses, citing uncle's own nose deformity.
- Someone demanded someone show her the engagement ring, while Aunt someone revealed someone and someone were engaged, infuriating someone.
- Someone berates someone for still working at the store, unaware that she has won a significant prize and is about to marry someone.
- Someone, a suitor, attempts to assert dominance over someone, a wealthy woman, by proposing marriage and a lavish home, which she rebuffs with sharp wit and disdain.
- The Knight returns to someone with a stolen peach for his bride, who prefers an orange.
- The Grand Duke and someone demand deference from someone, who works as a cashier at a restaurant, as he declines their invitation to a masked ball.
- Someone pressures his wife into an impulsive marriage proposal, while I, skeptical, suggests seeking advice from someone.
- Someone, cool in his authority, insists they leave while someone’s uncertain nature holds sway, hinting at her potential marriage proposal to someone’s friend.
- Someone, a shop forelady, rejects a marriage proposal from a wealthy suitor, sparking jealousy from a coworker who had previously invited him to dine.
- Someone confronts an someone who rejects his card, displaying a look of disdain that accuses him of inadequacy.
=== T18
- The young man demands explanation of the narrator's actions, while the narrator refuses, citing her own observations and ideals.
- The young man, someone, seeks to understand the upper class while the girl, offended by his ignorance, tries to educate him.
- The young man pursues the young lady through the park, hoping she notices him, while her obliviousness frustrates and intrigues him.
- Someone, a young man, eagerly awaits a date with a street-corner shopgirl, while his mother chauffeurs him to a fancy restaurant.
- Someone, a plain-looking but lovable girl, falls for the grocer's young man, unaware he is preoccupied with his horse, while he courts a more desirable young lady elsewhere.
- Someone, seeking romance or distress to aid, encounters a young man throwing coins into the street, drawing a crowd and halting traffic.
- The young man trails the girl through the park, shadowing her movements to the restaurant, where he waits for her to exit.
- The young man hesitates over a book left on the sidewalk, then decides to join a club with the chauffeur.
- Someone, looking imposing, invites a young man to join him at a someone table in a glittering part of someone.
- The young man confronts the lady, demanding she read a letter explaining his situation, while she accuses him of trying to manipulate her with false stories.
- The young man demands time to consider the woman's ultimatum, while she watches the clock for a signal of forgiveness or rejection.
- The young man implores the lady to reconsider his actions, while a streetwise boy delivers a direct challenge to the young man's message.
- The Prince attempts to persuade the young man to abandon his job as a clockmaker, a private affair, but the young man resists, eyeing a nearby house.
- The young man eagerly retrieves the girl's dropped book, risking a conversation to gain her favor in the quiet park.
- Prince someone, seeking to aid a troubled young man, confronts him at a bench, revealing his identity and offering his assistance despite the young man's apparent distress.
- The young lady demands a song and dance from the boy, warning him of consequences if he does not comply, while secretly intrigued by his unconventional message.
- The young man impatiently defies Prince someone, who insists he remain, revealing a past affair with a woman he wronged, seeking forgiveness and understanding.
- The someone commands the young man to leave with him, seeking to understand his distress over a painful dental procedure.
=== T19
- The squire, someone, and someone, the department store employee, observe and mimic the refined behaviors of their social superiors, seeking to embody the high social refinement that surrounds them.
- Customers vie for service at a variety of establishments, each seeking to assert authority or avoid awkwardness.
- Someone, confined to narrow store aisles, schemes to outmaneuver someone’s persistent attempts to sublet her store space.
- Someone & someone, the dominant dry goods store in someone City, controls the local economy, with someone, the senior partner, planning to send his junior partner, someone, to New someone to purchase goods.
- Someone, a 19-year-old saleslady in men's gloves, learns much about customers and human nature in the Biggest Store, while keeping her own secrets.
- Someone, the cash register girl, held sway over patrons with her charm and wit, commanding respect and affection in equal measure.
- Master and servant journeyed to the ferry, with the cats acknowledging their own tails, while the master bestowed a nickname on the servant.
- Someone, seeking advancement, navigates the social hierarchy of a fashionable salon while secretly preparing for a potential shift in values.
- Someone, the grocer’s assistant, admires him while someone, the housemaid, resents his indifference to her advances.
- Someone, the other waitress, piqued someone’s jealousy by her superior service and attractiveness at someone’s restaurant.
- Shop-girls convene to strategize against men, viewing their gatherings as a form of warfare against the household's patriarch.
- Someone, aspiring shop assistant, uses her position to cultivate social connections and discerns wealthy patrons, while her female coworkers monitor her progress and social standing.
- Someone and someone compete for a position and salary in a laundry, with someone emphasizing her social connections and status, while someone focuses on her personal achievements and the value of her work.
=== T20
- Monty schemes to bilk a bank, while Silver critiques the town’s residents as overly complacent and materialistic.
- Monty and someone discuss their experiences and fears in New someone, a city that intimidates newcomers and offers opportunities for financial gain.
- Abey, a salesman, outmaneuvers someone in a town visit, securing a future business opportunity while someone reveals disdain for the town's amenities.
- The city merchant seeks to impose geometric order on the chaotic nature of rural life, but finds his rigid ways clash with the fluid, curved rhythms of his wife's upbringing.
- Someone lectures someone on his New someone lifestyle, criticizing his behavior and comfort, while someone defends his choices in the city.
- Someone complains about the town's superficiality and corruption, while someone encourages him to embrace it, leading someone to decide against staying.
- The narrator seeks to define and create a character, the "Man About Town," but finds no clear description, leading to frustration and further confusion.
- Ileana refused to lodge a complaint, but demanded more excitement from the quiet town clerk, who offered a show next someone.
- Someone, seeking to impress, overplays his hand in a new town, angering Bunco someone with his ostentatious display.
- Montague Silver advises someone to leave the West for New someone, a place where "suckers appear in chunks of roe," as he prepares to take advantage of the naive.
- Someone complains about fitting in at his job in someone, while someone expresses dissatisfaction with the town's lack of excitement.
- The critic and narrator debate classifying the "Man About Town," a nocturnal figure influencing their city, with the narrator eager to meet and study him firsthand.
=== T21
- Someone, alone in his home, prepares a meal and contemplates his loneliness, remembering someone’s presence and realizing her importance to his happiness.
- The old man and the narrator engage in a playful yet contentious relationship over lunch, with the old man holding power and threatening to end their arrangement.
- The Old Gentleman, living alone, feeds someone, a servant, who sees their relationship as someone’s entitlement to the Old Gentleman's someone feast.
- Old man someone, tired of reading history, listens as someone reads about the someone War, bonding over shared history and family duty.
- Prince someone, hereditary ruler of someone, offers a young man wealth and a palace on the condition he never has a clock in his possession.
- The old man seeks his son someone, believing him to be a heavy-set man in his late twenties, while someone, annoyed, tries to redirect him to the Bishop of Long Island's dinner.
- The Old Gentleman coerces someone into a someone dinner, hinting someone lacks a male heir to carry on the tradition.
=== T22
- Someone condemns someone to the bar of judgment, while someone seeks to understand the nature of his accusers and his own fate.
- Someone, exonerated by someone’s confession, reflects on his past queerness while someone accuses him of foolishly not taking what he wanted.
- Someone demands attention, accusing others of market manipulation while someone and Silver try to understand and contain his eccentric demands.
- Someone seeks information about dismissed police captain someone, suspecting him of wrongdoing, while someone avoids him, believing someone is merely a curious citizen.
- A philosopher looks down from a high building, despising the insignificant lives of others below.
=== T23
- In the city, lovers and wanderers seek each other, but most choose dull routines over thrilling adventures.
- Someone, a poet who lived his verse, wandered the country, studying cities as women, seeking their essences and souls.
- A weary traveler haggles with a cab driver over fare, then seeks solace in a ritzy yet overpriced hotel, only to be disappointed by its slow service and overpriced food.
- Someone and someone discuss the decline of adventure and excitement, comparing modern life to the more adventurous times of the someone era, while someone reflects on his failed attempts at hunting and flying.
- Someone, a salesman, strolls through city streets, drawn to both the homebound and transient crowds, while seeking fortune and excitement.
- Old Tom someone ambles through town, concocting schemes to inject novelty into his mundane social interactions.
- Someone feels isolated and alienated in a soulless city where people are superficial, self-absorbed, and indifferent to each other.
- Someone, confident and well-groomed, seeks success at a high-end restaurant but is turned away due to his shabby attire, forcing him to reconsider his path to success.
- Someone led someone to meet someone, a factory worker struggling to cope with sudden prosperity, in her dingy tenement.
- Someone watched the city below through his window, captivated by its lights and secrets, while his desire for someone threatened to overwhelm his resolve.
- Someone, transfixed by an old church's sweet music, realizes the emptiness of his life and resolves to change.
- A critic observes a man-about-town who frequents seedy bars and nightclubs, seeking new experiences, while a churchgoer donates to charity, unaware of their shared city.
- Someone navigated the mundane routines and sudden upheavals of city life, from thrift store sales to street encounters with danger.
- The hackneyed old Negro at 861 Jessamine Street holds power over the narrator, who is hesitant to enter despite his desire to go there.
- Cork seeks anonymity from the police by visiting a seedy bar where he hopes to avoid recognition, while someone ventures in search of adventure and potential employment.
- Someone, a young woman, navigates the crowded, neon-lit streets of someone, buying necessities while contemplating her meager finances and the harsh realities of her living situation.
- Someone, hose-cart driver of Engine Company No. 99, spent his days obsessively mapping World War someone battles, while his comrades viewed him as a fervent someone supporter during peacetime.
- Someone the someone’s theater district caters to a volatile someone immigrant colony seeking political refuge and resources.
- A keen-eyed gambler coldly rebuffed a rural visitor seeking gambling opportunities in New someone City.
- Someone, the modest restaurateur, seeks adventure at night under the pseudonym of the someone, while his restaurant remains a quiet establishment during the day.
- Someone, a clerk at Insurance, seeks to understand life through poverty, love, and war, finding deeper meaning in urban experiences.
- Someone recounts his failed adventures, lamenting the predictability of modern life, while someone agrees, feeling cheated by the lack of unpredictable outcomes.
- Someone boasts of his global wanderings, yet his speech reveals a longing for his home and roots.
- Someone wanders aimlessly, desperate to avoid dining at his favorite restaurant, instead hoping for chance encounters that might inspire new ideas.
- Someone left his club, frustrated by daily monotony and unrequited love, as he walked through dull, fashionable streets.
- Someone, a mysterious outsider, seeks to understand the great city of someone, but finds himself overwhelmed by its complexity and aloofness.
- Someone, a cabbie, lures a fare into his cab with promises of a leisurely ride, leading her through the city and into his cabaret-like journey.
- Someone, a cigaretteur and friend to the narrator, envies the narrator's young, melancholic friend who works in a factory for low wages.
=== T24
- Someone, entranced by a beautiful young lady in a motor car, watches as she passes by, hoping to catch her attention, while someone attends a Gentle Riders reunion.
- Someone leaves for the hotel, while a young woman waits at the corner, unaware of someone’s dark thoughts.
- Someone, someone Van someone, and someone discussed philanthropic efforts in a lower east side auto.
- The fare and someone, the cabdriver, negotiate a ride to the Casino where the fare experiences a night of entertainment and revelry.
- Someone prowls the deck, suspicious of passengers, while someone observes, hinting at a potential encounter with a mysterious crooked-nosed man.
- Someone, someone, newspaper man, and youth with parted hair party at a table, watched by a newcomer in butternut clothing, all unaware of the impending disturbance.
- The girl in the tan jacket and someone exchanged secrets as other passengers watched, with the girl holding power over her companion.
- The conductor assigned seats as the someone Auto's top-riders, including someone from someone and his bride, prepared for the start of their sightseeing tour, while curious onlookers blocked the sidewalk.
- Someone, seeking amusement, pretends to be a common passenger while actually attending a rendezvous with a strikingly beautiful woman at someone Island.
=== T25
- Someone, a tailor’s apprentice, eagerly seeks out someone at the someone after winning elections in his district.
- The gentleman from someone, seeking companionship, underestimated someone’s preference for financial security over his romantic advances.
- Someone, the model, dazzled a hesitant buyer with her professional poise and someone’s encouragement, while her own thoughts turned to her dinner date with the buyer's wife-to-be.
- Someone, smug after a romantic encounter, confronts a young man who had been flirting with a lady he desires.
- Someone, usually passive at dances, becomes the center of attention as someone wins her heart, while other men vie for her company.
- A young laundry worker named someone, drunk and bold, seduced someone, making her suddenly desirable to other men.
- Someone, newlyweds, attempts to impress his bride-to-be someone with his good looks and worldly wisdom.
- Someone sought to exert her influence over the young man, who held the power of his upcoming someone travel, while maintaining her social status and luxury at the Hotel someone.
- Someone, a philosopher, outwitted someone by arriving at someone’s house first, showcasing vast knowledge but failing to impress with his lack of personal charm.
- Someone, expecting a beating, instead finds himself praised by someone, escalating a power dynamic between them.
- Someone’s confident whistling made someone eager to secure his affections, as he offered practical benefits and hinted at future financial stability.
- The Honorable someone, seeking to impress, engages the reluctant someone in a lively conversation, transforming her into the center of attention as other politicians and acquaintances arrive.
- Old someone, the storyteller, outdid his rival Hoss by combining another woman's heart into an artful love story, securing a lucrative contract and Hoss's enmity.
- Someone pressures his protégé to secure the role of someone" by convincing someone, who insists on the authenticity of the part, despite his suggestions being rejected.
- Someone lavishly praises her husband while someone expresses longing for a more intense relationship, leading to a heated interaction between someone and someone.
- The Honorable someone, seeking to impress someone, attempts to seduce her, leading to a confrontation and a decision to take her to a pub instead.
- Men at someone’s tables flatter someone, while someone, loyal to her, accepts their attentions without reciprocating.
- Someone, a wealthy visitor, hesitates as floorwalker someone confronts him with a shopgirl smile, unaware of the flirtatious nature of his profession.
- Towers someone, seeking to impress someone, prated about superficial interests while secretly hoping to reveal his actual, albeit mundane, work life.
- Someone and someone climbed Chimney Rock to crown someone queen, a frivolous contest with no stakes but youthful pride.
- Someone, seeking to impress the demurely grateful girl, suggests they dine together, recognizing her as a lady despite her plain attire.
- Someone, a man from someone, sought to impress and win over Lady someone with his sincerity, despite her initial skepticism.
- Someone, unsure of her next move, hesitates as her landlady informs her of a gentleman caller, while secretly admiring her appearance in a mirror and contemplating her social status.
- Someone, seeking to boost her wages, exaggerated a minor flirtation with a customer, leading to increased attention from male customers at her restaurant job.
- The Man from someone tries to win over someone, a fellow passenger on a train, with promises of shared gambling and reminiscing about mining, while she remains skeptical and distracted by her own thoughts.
- Someone, a suitor, pressures someone into marriage, emphasizing his social superiority and wealth, while someone questions his sincerity and social status.
- Someone, seeking advancement, pressures his subordinate for favors while maintaining a facade of eccentricity and subtly threatening blackmail.
=== T26
- Someone and Cherry perform at someone’s vaudeville theatre, their backstage routines hinting at their professional yet private lives.
- The reporter, seeking a light-hearted column, botches a funeral story, prompting a friend to craft a humorous take on the mishap.
- The captain maintains order while the boat struggles to land, while someone and someone navigate their complicated relationship.
- Someone, recovering from an accident, confronts someone the Tramp Juggler about his secretary Cherry's apparent infatuation, while someone insists she is deeply in love with him.
- Someone, seeking revenge, confides in someone about a drunken dream involving a mysterious automobile ride, while someone dismisses the tale as nonsense.
- Someone worked tirelessly in the fast-paced finance office, focused solely on his clients' investments, until a momentary distraction brought him face-to-face with his estranged secretary, someone.
- Someone seeks Cherry, a stage actress, to collaborate on his hidden play "Mice Will Play," matching her to his vision of someone.
- Someone Cherry, nervous about her performance, accidentally killed someone during a gunshot, leading to a comedic and chaotic aftermath.
- Someone presents his vaudeville sketch to someone Cherry, who critiques and improves it, leading to mutual trust and investment in its success.
- Someone, sub-editor of Doc’s Magazine, leaves work to seek distraction from his day's frustrations by calling his girlfriend, someone.
- Someone, now seeking work, confronts someone, a former Gentle Rider, at a club, revealing their shared history and current mismatched fortunes.
- Someone, feeling remorseful, resolves to take someone out despite his nightly outings with the boys, realizing he has neglected her.
- Lee opened a mysterious casket containing a memento from his ex-lover, leading to a confrontation with her and a swift departure.
- Pitcher, confidential clerk in someone’s office, shows mild interest and surprise as someone’s young lady stenographer arrives with a question about future employment.
- Someone desperately tries to convince the Tramp Juggler that his wife Cherry is not secretly in love with him, insisting it's too late and they have been married for two years.
- Someone, a graft worker, candidly discussed his profession with curiosity-driven someone, revealing the gendered dynamics of their relationship.
=== T27
- Someone, driver of express wagon No. 8,606, observed the Park someone and Polis someone agreeing to allow public parks to be used as sleeping quarters until weather improved, leading to a mass exodus into Central Park.
- Kid someone, humbled by someone’s defiance, disbanded the Stovepipe Gang, now reduced to street-corner ornaments.
- Someone observes the city through trees while someone awaits news of his dismissal from someone’s company.
- The Rough Riders, now mere visitors, bored and dejected, witnessed the city's grandeur but found it dull, leading to a fatal accident amidst the chaos.
- Jehu, the cabby, sees his passengers as cargo to be moved, holding power over them in his high seat.
- Someone, dropped a ring while climbing out of his cab, now stuck in a congested street blockade with someone impatiently waiting.
- The invader, a young man with a makeshift valise and a stray wisp of hay, is ignored by the city crowds as he stands in the gutter, evoking pity rather than suspicion.
- Someone, without an umbrella, pleaded for someone’s company as he blocked her path in the rain.
- The alien, entranced by the city's chaos, steps into the path of a fire hose-cart, leading to a tragic accident involving someone and his horses.
- Someone sits his iron horse at Union Square, commanding someone cars with his right hand but ignored by drivers, while his left hand points to a diverse immigrant district.
- The citizen, wary of time, consulted his watch for work, unaware that his young interlocutor was fleeing, leaving him alone in the park.
- Someone, once a prince, now a vagrant, sits with his uncle, a destitute Captain, on a bench in a forgotten park.
- Someone, driven by feud-hate, prepared for a confrontation with someone in the orderly, grid-like city streets.
- Someone, waiting for the annual someone proclamation, monopolizes a seat in Union Square, expecting good fortune.
- Shepherd Blue urged sheep to freedom, while someone trudged home, resigned to another uneventful day.
- Someone, or someone, pocketed a cab while someone screamed and old someone complained about his various solicitations.
- Someone waits alone at the Grand Central Station for his fiancée to arrive, knowing he has no chance to speak with her before her voyage to someone.
- Someone packed for a covert return to New someone, armed and prepared for urban intrigue and confrontation.
=== T28
- Someone waits for news of Rosy's escape while someone informs him she made it, causing someone to question the efficacy of the powder.
- The foolish children gave their most prized possessions to each other while the magi, who brought gifts, held the wisdom of giving and receiving.
- Someone, a goblin, attempts to charm the child of the wealthy Millionaire, who resents any attempts at progress and interference in her grief.
- The Goddess of Grub, revered by someone, held ultimate power over her customers, yet her presence was suffused with a maternal warmth that made her seem almost human.
- Someone scavenged a lost rag-doll, then used it to con drinks at a saloon, while others feasted and celebrated nearby.
- The Millionaire's servant searches his vast estate for the lost rag-doll cherished by his spoiled daughter, while the child's mother, a prim lady, struggles to understand her daughter's grief.
- You saw someone Ray's aerial garter flight during her vaudeville act, as patrons desperately tried to catch it, while she announced her retirement to her friend.
- Minnie Brown, seeking validation for her trip, pressures the narrator into reading her a story to prevent her from returning home.
- Rachel refused to be comforted as doctors and toy makers rushed to the Millionaire's mansion for the Child's rag doll, while someone promised a visit and urged everyone to show someone spirit.
- Black someone demands fifty cents for the rag-doll found at the Millionaire’s mansion, while someone insists it was given to him by the someone of someone.
- Grace, now a rainbow, insists on wearing her new dress despite someone’s unfinished garment and refusal to attend the dinner.
- Someone demands her kidnapped child while Ransom reluctantly hands over her stolen furs to her.
- Someone, eager for the sables, outmaneuvers Ma someone to keep them, while the Kid, proud of his acquisition, tries to placate her.
- Someone hurried home to pay someone for the dress, while Grace cried over being evicted by her landlady.
=== T29
- Merchants and hoteliers seek relief from unbearable heat, while the city's vulnerable struggle to survive.
- Cries of newsboys pierce the early morning silence as rich and poor alike anticipate the day's fortunes and misfortunes in the bustling city.
- Someone sat in her shivering room, while the almanac lied about spring, and the city's hand-organs played "In the Good Old Summertime.
- The Bed Liners, seeking warmth, huddled around the Flatiron Building's imposing structure, while the Preacher's earnest sermon on someone nights offered them hope of a better life.
- Someone seeks work in New someone, encountering a stern preacher who warns of the dangers of the theatre, leading her to seek employment in a factory for artificial flowers.
- Someone, a conscientious grafter, seeks rest in New someone, his hall bedroom on Eighteenth Street the center of his activities, while a chambermaid watches in awe.
- The Preacher preaches to a crowd of miners, some of whom tipple, while someone, a former drunk, seeks shelter.
=== T30
- Someone, a former chauffeur, confronts an enigmatic automobilist demanding answers about his past and a prize, leading to a humiliating encounter.
- Someone, a ten-millionaire, heroically saves a runaway team and a lady, but his true identity as a discharged policeman is revealed.
- The police held the “Stovepipe” gang in suspicion, while someone’s love for “Kid” someone threatened to undermine their criminal enterprise.
- Someone and the Kid parade down the street, their wealth and status attracting curious glances from the Stovepipe Gang, while Detective Ransom watches from behind them.
- The policeman watched as the persecuted young woman enticed someone to flee with her, knowing his presence was futile.
- Someone commandeered a runaway auto to rescue a boy, while someone tried to stop it, leading to a chaotic chase involving someone and a horse.
- Someone, desperate and ambitious, schemes to escape his current plight but is confronted by a policeman, revealing his criminal activities.
- Someone chased the fleeing victoria, his chestnut horse outmaneuvering a pair of runaway bays, while a disguised policeman tried to intervene.
- A decrepit carriage driver, a patched military coat, and a ragged Negro woman vie for a passenger in a dilapidated street.
- Someone fears a police raid will end his career, while someone orchestrates an escape plan, engaging in tense negotiations with the police and guiding his guests through a secret ladder to safety.
- Someone, a desperate man, attempts to con a young woman by posing as a "masher" in front of a cop, unaware the officer is watching him.
- Someone, a rebus worker, eludes a policeman by running and jumping into a speeding car driven by a masked chauffeur, unaware of his passenger's indifference.
- Someone, a someone businessman, is arrested for mistaken identity as "someone" someone, a someone burglar, on a train journey.
=== T31
- Someone, the café owner's daughter, orders drinks and demands information about her fiancé's infidelity, showing her power and control over the waiter.
- The Kid seeks a peach for a lover, vying with a fruit vendor and a reluctant someone, who ultimately agrees to find oranges instead.
- The Kid seeks revenge on someone, now engaged to someone, by attending a dance with someone, infuriating someone.
- Someone, seeking revenge, offers a drink to someone, while someone, a child, watches them from the street.
- Someone swindles a child, then feigns delight at a waiter's incorrect guess about easy marks, before ordering expensive wine and dessert.
- The Kid seeks employment, while the Captain of Police considers helping him infiltrate gambling den someone’s, despite previous conflicts.
- Someone manipulated a child to buy medicine, using his position to exploit the boy's trust and pocket the excess money.
- The Kid someone, a former outlaw, now works as a plumber but is suspected of selling stolen furs, leading to a confrontation with detective Ransom.
- The Kid demands control of a lavish dinner party, suspects theft, and retrieves the last peach, threatening violence if it happens again.
- The Kid, Ransom, and someone argue over stolen furs, with the police attempting to verify their authenticity and the Kid revealing he paid too much for them.
- Someone, the night clerk at the Blue Light, advised customers on medicine while the store overlooked children playing on the street.
- The barkeep and his customers scheme to produce and distribute a potent cocktail, risking ruin to make a fortune, only to discover one batch is dangerously potent and elicit bizarre, hallucinatory reactions.
- Someone confronts a fraudulent patient while preparing pharmaceuticals with someone, who insists on using different excipients.
=== T32
- Someone, the maid, threatens to blow a goodbye kiss to someone from her sickbed, while someone tries to convince the ambulance doctor about the strange case of someone.
- Someone, the insurance investigator, returned with news of someone’s lost boy, igniting a chain of reactions as neighbors and passersby offer help or express concern.
- A panicked crowd sought help from two policemen as an ambulance and surgeon intervened, while a newsboy and young journalist gathered information.
- Someone agonized over the menu changes, her tears reflecting the loss of someone, as dandelions, his favorite flower, appeared.
- The surgeon and driver argue over the critically ill patient's condition while the Old Gentleman's family insists he's merely fasting for health reasons.
- Uncle someone, a faded carriage proprietor, attempts to lure customers with low fares, while a crowd gathers outside a drug store for the funeral of Major someone, a former soldier whose death is met with polite but unsuitable tributes.
- Someone, holding someone tightly, buckles a life preserver around her while passengers panic and the boat begins to sink.
- Someone, a former coachman, offers a captured tire to a sealskinned gentleman who questions his identity and family, inviting him to a ride in a motor car.
- Someone and someone debate the loss of their lost son someone, comparing him to their deceased child someone, while below a maid searches for a missing six-year-old boy.
- Someone interrupted someone mid-poem, prompting someone to finish the verse and depart, leaving someone to muse over a vision of an angel in the garden.
- Someone, worried about someone’s deteriorating condition, tries to distract her as someone counts the falling ivy leaves outside, hinting at her own mortality.
- Someone, ill and alone, clings to a single ivy leaf as a symbol of hope, while someone tries to comfort her, unaware that the leaf will soon fall with someone’s death.
- Someone, anxious about her mother's health, returns home only to find someone, her brother, planning to gamble instead of comforting her.
- The doctor and someone argue over someone’s chances of survival, with the doctor holding power and someone pushing for any possible intervention.
- Someone’s father, a retired fur cutter, seeks help from someone after being run down by a reckless driver, leading to a power dynamic between the grieving daughter and the business owner.
- The Earl of someone’s attentiveness to someone at the charity bazaar led to a public embarrassment when she fainted in his presence.
- Someone forces someone back to the bench, while someone, fearing for his life, begs for reassurance as he panics over potential misfortunes that could prevent him from receiving his inheritance.
- Someone moved uneasily on his bench as someone Frost’s card fell in his lap, hinting winter was near and he prepared for a three-month respite from cold and threats.
- Someone confronted someone, accusing her of abandoning his sister someone, who had disappeared mysteriously.
- Someone, fearing abandonment, sought connection but found only isolation, prompting him to beg for acknowledgment from a passing fat man.
- Someone, someone, and someone’s sick child argue over someone’s continued presence, with someone insisting on staying to finish her drawings, while someone demands someone leave to see the last ivy leaf fall outside.
- Brick someone warns someone about safety at their usual meeting spot, revealing someone’s absence and the need for caution.
- Someone begs alms from the someone populace, met with indifference, before being struck by a vehicle.
- Someone, desperate to locate her brother someone, pressures him to return home, while someone, his brother, tries to negotiate a way for someone to come home without arousing suspicion.
- Someone, desperate and drunk, seeks sympathy from a young ex-coachman at a makeshift army camp.
- Someone, distraught, tidied someone’s room, feeling a profound sense of loss as if she had truly vanished.
- Someone demands a modeling session for a sick someone, while someone tries to manage the situation and hide her discomfort.
- Someone searches frantically for her missing son someone, while neighbors offer help and concern in the face of a child's disappearance.
- Someone found his wife someone’s room in disarray with a note explaining she was leaving for a sick mother, prompting concern and suspicion.
- A mob of desperate parents, lovers, and maidens pursues a woman, seeking vengeance or solace, while a mysterious figure named someone is comforted by the river.
- Someone, the someone, confronts someone, offering him a last chance to escape his impending doom, while ignoring the narrator's presence.
=== T33
- Special Terrestrial Officer someone presents a grim case to the court, while court officer threatens to transfer him, revealing the actual suspect is a man in the room.
- Someone charged into the room of single combat, seizing someone’s stiletto as he lunged, while the Board stood frozen, unsure of what to do.
- Someone confronts someone, a policeman, over a damaged horse, while someone threatens retribution and invites someone to a social event.
- Someone regains composure, demands someone leave, and challenges the lawyer, while someone faints.
- Someone and the someone argue under the moonlight, with the someone threatening someone, who senses he is the only one aware of the danger.
- Gladiators someone and someone spar, each vying for supremacy in their boxing match.
- Someone and someone engage in a culinary duel, interrupted by a loud scream from their home, causing them to pause briefly in a standoff, while Policeman someone overhears and decides not to intervene.
- The policeman, vigilant and observant, encounters a man waiting outside a demolished restaurant, challenging the officer's knowledge of the area's history.
- Someone smashed a shop window, prompting a chase and confrontation with a policeman, who instead sought out the culprit, leading to someone’s patronizing visit to a cheap restaurant.
- The policeman, seeking to assert his authority, confronts someone, now a stranger, while someone waits anxiously for his friend.
- The someone family throws a noisy wedding party, drawing curious neighbors and someone’s cab to the sidewalk outside someone.
- Someone confronts someone, a former foe, in the chaotic street scene, their long-standing feud temporarily set aside.
- Someone leads a group to escort someone away, while someone fears someone cannot stop a fight with the Board of Rules.
- Buck someone, someone, and Brick someone engage in a naval battle at someone’s, with Buck orchestrating the fight, someone infiltrating stealthily, and someone disrupting communications, leading to chaos and injury.
- Policeman someone overhears someone’s domestic dispute, estimating the duration and escalating violence.
- Someone slapped someone, shocking the room as Conscience's ax echoed, and someone fled, robbed of his climax by someone’s swift hand.
- Someone, his mother frying bacon, and his father smoking a pipe in the front room vie for his attention on someone morning.
- Someone challenged someone with insults and culinary provocations, escalating their domestic feud.
- Someone, someone’s mother, and Sisters someone and someone engage in conversation while Tom and someone play on the porch, setting the stage for someone’s escalating confrontation with his father.
- Someone’s men confront a cop in a dimly lit room, escalating from a casual encounter to a tense confrontation over a missing man.
- Tom accepted an invitation to a wrestling match with a lawyer, leading to a chaotic evening of physical contests and drunken revelry.
- The President, Kid someone, and the Lady engage in a private moment interrupted by someone, who threatens someone and flees, revealing the city's pervasive criminality.
- The black-and-tan dog and pointer vie for dominance in a social setting, with the black-and-tan mocking the pointer's initial shyness and boasting about his own confidence.
=== T34
- Black someone temporized as someone, intoxicated with performing for a local literary group, proposed a night off from his usual gig at someone’s theater.
- The man of destiny seeks companionship, offering someone a drink in a saloon to discuss his literary pursuits and the unavailability of a book for him.
- Bill, in the role of someone, seeks a poetic description of New someone’s soul from someone, someone, someone, May, and someone, hinting at a symposium to capture the city's multifaceted voice.
- Someone, burdened by a someone and a festival, sought solace in a glass of beer, while someone tried to cheer him up on someone.
- A man, forty and harassed, boasts about New someone’s comforts to a fat companion seeking outdoor adventures.
- Someone confronts his alcoholism, forced to admit it to his drinking buddies, initiating a painful homecoming where he must reconcile his public persona with his private struggles.
- The man seeks someone’s advice on fortune-telling, believing him to be a source of good luck, while I, a friend of someone, tries to convince him otherwise.
- Someone, a lifelong seeker of unpredictable adventures, eagerly anticipates a bottle of someone with someone, who shares his adventurous spirit.
- Someone, now sober, confronts the saloon culture with newfound hostility, while his drinking companions continue their revelry.
- Tiger someone, skeptical of spring's arrival, seeks tangible signs while someone, his father, contemplates his own changeable desires in a saloon, leaving mutability of desires to his son.
- Someone and the Captain, now a saloon-keeper, meet in the city's downtrodden core, both seeking scraps from the moral cataclysms that have reduced them to this social abyss.
=== T35
- Someone, seeking revenge for mistreatment by a man who has insulted the lady, agrees to help despite someone’s initial reluctance.
- Someone demanded someone take her home, threatening to call the police, while someone tried to retrieve a lost diamond ring, leading to a heated argument and a confrontation with someone.
- Someone, the girl, challenges Cop someone’s authority over her man, someone, with accusations and money, while someone tries to assert his power.
- The Secretary hands someone a ten-dollar bill, transferring authority to someone, who then directs someone to Black someone, the earner of the reward, as he exits the building.
- A banker desperate for cash extorts a loan shark, who offers him $60,000 in a safe, but warns of potential danger.
- Someone, armed with cash, negotiates with a disreputable former associate, someone, who resorts to violence, then charms the someone guard to enter a private residence.
- Old someone flaunted his wealth and moralizing skills, offering someone various uses for a thousand dollars, to which someone responded with frustration and a desire to spend it impulsively.
- Someone threatens to leave someone to seek payment from their adulterous daughter-in-law someone.
- Someone, seeking groceries, confronts someone over payment, escalating into a physical altercation in the store.
- Someone threatens someone with losing his job and demanding repayment of a debt she owes him, while she tries to convince him it is still winter.
- Major someone confronts the narrator in a bar, forcing him to confront a torn, counterfeit dollar bill, intensifying their hostile encounter.
- Someone, a potential prize for the trio of street fighters someone, Black someone, and someone, is coerced into accepting a reward for his services, leading to a tense standoff at the Millionaire’s house.
- Someone attempts to bribe someone with a thousand-dollar note, but she refuses, leading to a tense interaction between them.
- Someone schemes to win back his wife, someone, with false promises, while someone and someone wait for a dollar from someone.
- Someone challenged someone’s generosity, leading to a tense standoff and a moment of intimacy as someone revealed his true intentions.
- Someone demands payment from someone for custom-made clothes, threatening to take her away unless she pays, while someone begrudgingly complies, feeling the financial strain of her desire for fashionable attire.
=== T36
- In the mining camp of someone, Black Bill, the artist friend and author's hero, struggles to pay for a full-page illustration in a magazine, envied for his unique blend of cowboy and urban scenes.
- The millionaire lumberman, disguised as a miner, is challenged by the bollworm (someone) and her friends, leading to a series of attempts to win her affections and control.
- Jabez someone, a pauper, sought to reclaim his fortune by confronting a wealthy man in the streets, only to be recognized by the city's keen-eyed police.
- The General, cornered by street chaos and threatened by two hunters, finds unexpected help from Spider someone, who offers assistance and friendship.
- Someone urges someone to sleep while she calls him to model for her old hermit miner, a failed painter who drinks heavily and fears his own mortality.
=== T37
- Someone recounts her travels and observations of societal injustices, easing her visitor's discomfort with tea and cake.
- Someone, now coatless, served someone personally, while someone brought her courses, igniting her suspicions and admiration.
- Someone, seeking warmth and security, planned to spend winter on the Island, avoiding charity and its indignities, instead opting for the law’s accommodations.
- Tom, the youth, hailed someone at a country station, eager to catch up after years apart, while someone, cool and aloof, appeared, diminishing Tom's confidence.
- Someone boasts of his superior knowledge of New someone at the expense of his friend someone, now reduced to living in "someone.
- Someone confronted someone, now free, two blocks away, while he struggled with his own desires and failed to understand her sudden liberation.
- The old farmhouse and its inhabitants greet someone with a chorus of voices, while his wife someone feels out of place amidst the rural reunion.
- Someone, now a wealthy bachelor, revisits his old friend someone, a watchmaker turned outdoorsman, finding them as different as ever.
- Someone, seeking to add joy to her life, hesitates while her friend someone pressures her to go to someone Island, a decision someone doubts she can make.
- Abbot someone, now Brother someone, welcomed two travelers with a transformational appearance, causing them to react with perplexity and astonishment.
- Someone and someone discuss their impending departures while reminiscing about their stay at the Hotel someone.
- Someone, seeking social advancement, meets someone at a boarding house, initially dismissing her but later noticing her striking appearance and demeanor.
- Someone’s arrival brought conflicting impressions—cold and lost ideals for someone, while someone offered warmth and hospitality, affecting him differently.
- Someone and someone’s friendship shifted as someone accepted a date with a new suitor, leaving someone feeling sidelined and envious.
- Someone requests an immigrant's importation, unsure of his origin, while someone interprets his mixed-language accent, leading to confusion and someone’s dismissive nickname "fool.
- Someone, haughty at first, invites someone to someone Island, setting up a social encounter where their initial differences are bridged by shared experiences.
- Van someone, seeking to help, warmly grasped someone’s hand, offering friendship to a visibly downtrodden young man.
- Someone and someone, former friends from the West, compete to become either New someone or outcasts in the battle against the City.
- Someone checked into a New someone hotel, feeling invigorated and eager to start a new life as a someone delegate to the someone Convention.
- Someone’s return to the engine-house sparked renewed interest from someone, who became a frequent visitor despite being kicked out, while someone’s son someone developed a fondness for someone.
- Someone skillfully steered someone’s lunch choices while someone expressed discontent over his lack of western experiences.
- Someone Brown, a vulgarized former Brown, visits someone weekly, offering business insights and criticism, while someone uses him as a scapegoat for his own poetic failures.
=== T38
- Detective Woods confronts someone, now a newspaper salesman, suspecting someone’s involvement in the murder of millionaire someone.
- Someone, a mysterious figure, confronts an old man, accusing him of being a fool and threatening to kill someone, while the old man questions someone’s identity.
- Someone, a young man, confronts the Preacher over unpaid debts while his lover someone arrives, revealing she saw someone at a fortune teller's.
- Someone confronts someone over his mother's invitation to visit the rural farm, hinting at potential conflict.
- Someone demands a voyage, accuses the narrator of forgetting prophecies, and questions the narrator's judgment over trifling misfortunes.
- Bill someone’s loss of a 'possum dog to a someone squirrel rifle sparked a forty-year feud between the someone families.
- Someone, seeking money left by his uncle, confronts someone, a blind man, and lawyer someone in a cab, revealing a secret amendment to the will.
- Someone confronts someone Sharp and someone, his executors, over the interpretation of a codicil to his uncle's will, threatening to expose their handling of a $1,000 bequest.
- Someone, a businessman, offers a drink to indebted someone Woods, hinting at their unequal power dynamic and someone’s reluctance to arrest Woods.
- Someone, a hat-cleaning shop worker, prefers reading someone’s sea yarns over buying expensive items, while old Tom, a soap manufacturer, tries to sell him cheap books, leading to a confrontation.
- Someone’s love for Frank someone, a potential son-in-law, clashes with her father's cattle empire and his private secretary's presence.
- Someone challenges someone over her inheritance from Uncle someone, a paltry $20,000 annually, insisting she wants more than financial security.
- The one-spot accuses her boss of exploiting her in a slum room, while the boss mocks her religious note as worthless.
- Someone seeks a song book for a friend in a shop, sparking a confrontation with a red-haired young woman.
- Professor someone and the lady debate the meaning of an ancient prophecy while someone, a former coachman, is approached by an enchanter about returning to his old home.
- Someone threatens to expose someone’s future with a wealthy someone lumberman, angering someone and the narrator.
- Lawyer someone demands an account of Young someone’s expenditure of $1,000 inherited from his uncle's will, setting off a chain of events involving Old someone.
- The tall man debates whether to trust the note from 'Silky' someone or the police, as the latter holds the power to arrest him.
- Old someone, manufacturer and soap tycoon, confronts his son someone over household expenses, revealing his scrutiny of the family's lifestyle.
- Uncle someone, a Negro with a someone coat, corners someone for a contract on her literary works before a rival publisher offers her more.
- The lady accuses someone’s wealthy aunt of aiding the devil by selling brandy balls, inciting someone to seek other work to avoid assisting in their production.
- The twenty-year-old gambler seeks information from Old someone, the proprietor, only to be met with condescending explanations and eventually surrounded by various social climbers.
- The dark-haired young man, likely a someone, challenges the someone social order by loudly interrupting the narrator's attempt to gather information about his origins.
=== T39
- Someone schemes to expose her husband's infidelity while someone hides the truth, causing a domestic conflict upstairs.
- Someone, desperate for help, brings his wife to the police station after a chaotic horse theft gone wrong.
- Cork coerces his girlfriend into a clandestine rendezvous at a known criminal's house, leading to a tense confrontation with the police.
- Someone, accused of murder, throws a kiss at his wife's unseen admirer while his wife advises him to resist arrest.
- Someone and his wife critiqued and ridiculed the narrator’s writing, while someone prepared for a lucrative court case.
- Someone struggles to convince his wife, someone, to join him in a quest for a treasure to save their failing life, while two hired guns wait outside the ruined château.
- A woman accuses someone of not recognizing her, leading to a tense yet intimate dinner where she reveals she remembers him from a past relationship.
- Someone, the someone, confronts someone, who he believes is a fool for waiting to marry, and tries to persuade him not to kill someone.
- Someone, desperate to escape her life, confronts her husband someone, who tries to reason with her, leading to a bitter parting.
- His wife's customary parting kiss and deft touch of ownership threatened to escalate into a full-blown confrontation over his mounting professional and personal stress.
- Someone envies someone’s physical abuse, while someone boasts of her husband's mild treatment to mask her own bruises.
- Someone demands half an hour from someone to demonstrate his theory of true-to-life fiction using someone, his wife, as an example.
- The doctor feigns amnesia to protect his wife from a dangerous impostor, while the impostor tries to exploit their situation.
- Someone threatens to strangle someone with a bottle, revealing she misunderstood his poetry, while someone overhears and speculates about their relationship.
- Someone, the lawyer's wife, mocks and questions someone’s memory of their past encounter, provoking him with intimate questions about their affair.
- Someone attempts to placate his wife, someone, while a mysterious figure in the back room threatens their marriage.
- The lawyer, someone, confronts his unseen wife's lover, someone, revealing he has forgotten his identity and aphasia.
- Someone, tempted by the apple tree, is interrupted by his wife's unexpected presence and tender words.
- Someone’s wife, someone, confronts him over domestic duties, escalating to physical violence that she later realizes was a mutual act of passion.
- Someone manipulates her husband into comforting someone, while secretly planning to blame their missing child on her.
- Someone interrogates someone about his previous love affair, pressing for details and motives in a tense power dynamic.
=== T40
- Captain and someone, at odds, reluctantly agree to act according to their lights in New someone’s divided society, while unseen others converge towards an unknown destination.
- Someone, the mythic someone, is summoned by Down South's community to address any acts of foolishness, held in awe despite his nonexistence.
- Someone, now seeing a group of idealists, joins them as they plan to transform mundane tales into enchanted adventures, humbled by their vision.
- The narrator observes two men, the VENTURER and the ADVENTURE, contemplating the uncertain future of fortune, chance, and discovery on a train journey.
- Someone revels in unrestrained freedom, only to discover convention holds the true key to liberty.
=== T41
- Someone seeks publication for his manuscripts while facing financial struggles.
- Someone, once a newspaper artist, struggles to find steady work as he exposes the flaws in people's appearances through his drawings, leading to frequent job losses and a reliance on alcohol for comfort.
- Someone, the artist, dismissively lists the contents of a magazine he considers dead, infuriating his clerk friend someone Brown.
- Someone pressures her music teacher husband someone to continue studying while she teaches art lessons, leading to financial gains and strained family life.
- Someone, a wealthy patron, seeks someone, an artist, to critique a pastel sketch, wary of its artistic merit and fearing its value.
- Someone, ambitious businessman, and someone, aspiring artist, clash at the ferry, setting their city-savvy ambitions against each other.
- Someone, seeking to improve her lot, takes art lessons from a retired barber while navigating the harsh realities of urban life and the competitive world of art.
- Someone and someone, aspiring artists, lived in a cramped flat, dreaming of spacious studios, while their teacher someone and piano tutor someone provided the means to achieve their goals.
- Someone, a young artist, sells his painting for $5,000 while Bill someone, a poet, recounts their past meals at someone’s, a restaurant where patrons often went unpaid, hinting at a history of financial dealings and possibly a power dynamic.
- The artist struggles to depict someone, limited by tradition and personal preferences, while his mentor insists it is a concept without fixed meaning.
- Someone, a mysterious artist, confesses his love to someone, a receptionist, in her office, revealing his identity and passion, while she feels a sudden surge of emotion.
- Professor someone’s praise for someone’s sketches alternated between admiration and harsh criticism, while someone struggled with personal and professional setbacks, including a missed remittance, unsold artworks, and a headache.
- Someone seeks music lessons to support her Art, while someone resents her financial independence and challenges her ambitions.
- Someone and someone, an artist couple, seek shelter in a quirky someone Village colony, unaware that the looming Pneumonia threatens their fragile existence.
- Someone and someone, newlyweds with a passion for art, face financial hardship in a cramped New someone flat, questioning the value of their shared love for art amidst their struggles.
- Someone, eager to profit, demands the artist paint a portrait of his wife based on a drawing, offering payment for the finished work.
- Someone, a painter, travels to New someone to pursue her art career, facing judgment and skepticism from both her rural hometown and urban boardinghouse dwellers.
- Painter someone struggles with clients' anger and scandal after revealing hidden truths in his portraits.
- Someone, ill and dying, fantasizes about painting while her nurse someone nurses her, unaware of the doctor's grim prognosis for another patient.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+562
View File
@@ -0,0 +1,562 @@
{
"D01": {
"size": 20,
"stories": 18,
"dominant": 0.1,
"coherence": 0.7827,
"B0_tight": false,
"S1": 0.5905,
"S2": 0.7832,
"S3": 0.8333,
"S4": 0.0027,
"S5": 0.1118,
"S6": 0.1,
"top_word": "poem"
},
"D02": {
"size": 14,
"stories": 12,
"dominant": 0.1429,
"coherence": 0.7576,
"B0_tight": false,
"S1": 0.5413,
"S2": 1.0081,
"S3": 0.7778,
"S4": -0.0216,
"S5": 0.0375,
"S6": 0.1429,
"top_word": "fraudulent"
},
"D03": {
"size": 31,
"stories": 21,
"dominant": 0.1613,
"coherence": 0.7895,
"B0_tight": false,
"S1": 0.6105,
"S2": 0.9931,
"S3": 0.4769,
"S4": 0.0146,
"S5": 0.1681,
"S6": 0.0645,
"top_word": "exert"
},
"D04": {
"size": 15,
"stories": 10,
"dominant": 0.2,
"coherence": 0.8192,
"B0_tight": true,
"S1": 0.6445,
"S2": 0.9311,
"S3": 0.5172,
"S4": 0.0383,
"S5": 0.1556,
"S6": 0.1333,
"top_word": "juggler"
},
"D05": {
"size": 15,
"stories": 10,
"dominant": 0.2667,
"coherence": 0.8047,
"B0_tight": true,
"S1": 0.6132,
"S2": 0.8514,
"S3": 0.4545,
"S4": 0.0169,
"S5": 0.2,
"S6": 0.4,
"top_word": "art"
},
"D06": {
"size": 23,
"stories": 14,
"dominant": 0.2174,
"coherence": 0.7807,
"B0_tight": false,
"S1": 0.5864,
"S2": 0.892,
"S3": 0.377,
"S4": 0.0157,
"S5": 0.0926,
"S6": 0.1304,
"top_word": "contract"
},
"D07": {
"size": 34,
"stories": 21,
"dominant": 0.1176,
"coherence": 0.7856,
"B0_tight": false,
"S1": 0.6037,
"S2": 0.9154,
"S3": 0.4722,
"S4": 0.0391,
"S5": 0.1377,
"S6": 0.0588,
"top_word": "embezzling"
},
"D08": {
"size": 8,
"stories": 6,
"dominant": 0.25,
"coherence": 0.821,
"B0_tight": true,
"S1": 0.6235,
"S2": 0.9177,
"S3": 0.6667,
"S4": 0.0286,
"S5": 0.119,
"S6": 0.375,
"top_word": "brother"
},
"D09": {
"size": 20,
"stories": 16,
"dominant": 0.15,
"coherence": 0.8008,
"B0_tight": true,
"S1": 0.6212,
"S2": 0.932,
"S3": 0.6667,
"S4": 0.038,
"S5": 0.1724,
"S6": 0.1,
"top_word": "chef"
},
"D10": {
"size": 16,
"stories": 11,
"dominant": 0.125,
"coherence": 0.7925,
"B0_tight": true,
"S1": 0.6021,
"S2": 0.9579,
"S3": 0.6154,
"S4": 0.0349,
"S5": 0.1764,
"S6": 0.125,
"top_word": "town's"
},
"D11": {
"size": 36,
"stories": 23,
"dominant": 0.2222,
"coherence": 0.7682,
"B0_tight": false,
"S1": 0.5746,
"S2": 0.8955,
"S3": 0.3273,
"S4": 0.0148,
"S5": 0.1336,
"S6": 0.0556,
"top_word": "weekly"
},
"D12": {
"size": 11,
"stories": 9,
"dominant": 0.1818,
"coherence": 0.8225,
"B0_tight": true,
"S1": 0.6432,
"S2": 0.9599,
"S3": 0.7333,
"S4": 0.0635,
"S5": 0.3106,
"S6": 0.1818,
"top_word": "reveled"
},
"D13": {
"size": 16,
"stories": 11,
"dominant": 0.1875,
"coherence": 0.8034,
"B0_tight": true,
"S1": 0.6174,
"S2": 0.89,
"S3": 0.5333,
"S4": 0.0303,
"S5": 0.2285,
"S6": 0.125,
"top_word": "posing"
},
"D14": {
"size": 18,
"stories": 14,
"dominant": 0.1111,
"coherence": 0.7622,
"B0_tight": false,
"S1": 0.5539,
"S2": 0.8515,
"S3": 0.6923,
"S4": 0.0198,
"S5": 0.091,
"S6": 0.1111,
"top_word": "central"
},
"D15": {
"size": 24,
"stories": 17,
"dominant": 0.2083,
"coherence": 0.7883,
"B0_tight": false,
"S1": 0.6034,
"S2": 0.9526,
"S3": 0.4615,
"S4": 0.0195,
"S5": 0.0933,
"S6": 0.125,
"top_word": "eviction"
},
"D16": {
"size": 13,
"stories": 12,
"dominant": 0.1538,
"coherence": 0.8063,
"B0_tight": true,
"S1": 0.6184,
"S2": 0.762,
"S3": 0.8667,
"S4": 0.02,
"S5": 0.1741,
"S6": 0.1538,
"top_word": "furs"
},
"D17": {
"size": 10,
"stories": 7,
"dominant": 0.4,
"coherence": 0.777,
"B0_tight": false,
"S1": 0.5544,
"S2": 0.9322,
"S3": 0.4545,
"S4": 0.0058,
"S5": 0.1519,
"S6": 0.4,
"top_word": "dog"
},
"D18": {
"size": 18,
"stories": 9,
"dominant": 0.2222,
"coherence": 0.7972,
"B0_tight": true,
"S1": 0.6051,
"S2": 0.8746,
"S3": 0.36,
"S4": 0.02,
"S5": 0.2407,
"S6": 0.1111,
"top_word": "tire"
},
"D19": {
"size": 15,
"stories": 14,
"dominant": 0.1333,
"coherence": 0.7767,
"B0_tight": false,
"S1": 0.5745,
"S2": 0.9227,
"S3": 0.8824,
"S4": 0.0378,
"S5": 0.027,
"S6": 0.1333,
"top_word": "rest"
},
"D20": {
"size": 10,
"stories": 8,
"dominant": 0.2,
"coherence": 0.8048,
"B0_tight": true,
"S1": 0.6035,
"S2": 0.8434,
"S3": 0.7143,
"S4": 0.0374,
"S5": 0.1926,
"S6": 0.2,
"top_word": "leaf"
},
"D21": {
"size": 20,
"stories": 18,
"dominant": 0.1,
"coherence": 0.79,
"B0_tight": false,
"S1": 0.6039,
"S2": 0.9266,
"S3": 0.8333,
"S4": 0.0235,
"S5": 0.0969,
"S6": 0.1,
"top_word": "boarding"
},
"D22": {
"size": 34,
"stories": 23,
"dominant": 0.0882,
"coherence": 0.784,
"B0_tight": false,
"S1": 0.6024,
"S2": 0.9554,
"S3": 0.5667,
"S4": 0.0183,
"S5": 0.1019,
"S6": 0.0588,
"top_word": "bootblack"
},
"D23": {
"size": 11,
"stories": 7,
"dominant": 0.2727,
"coherence": 0.8066,
"B0_tight": true,
"S1": 0.6039,
"S2": 0.8482,
"S3": 0.4783,
"S4": 0.0218,
"S5": 0.1561,
"S6": 0.1818,
"top_word": "portrait"
},
"D24": {
"size": 33,
"stories": 27,
"dominant": 0.0909,
"coherence": 0.7573,
"B0_tight": false,
"S1": 0.5596,
"S2": 0.9162,
"S3": 0.7021,
"S4": 0.0222,
"S5": 0.0391,
"S6": 0.1212,
"top_word": "food"
},
"D25": {
"size": 24,
"stories": 20,
"dominant": 0.125,
"coherence": 0.7838,
"B0_tight": false,
"S1": 0.5963,
"S2": 0.8921,
"S3": 0.7059,
"S4": 0.0341,
"S5": 0.1449,
"S6": 0.0833,
"top_word": "discussing"
},
"D26": {
"size": 13,
"stories": 8,
"dominant": 0.3846,
"coherence": 0.7752,
"B0_tight": false,
"S1": 0.553,
"S2": 0.8406,
"S3": 0.3714,
"S4": 0.0224,
"S5": 0.078,
"S6": 0.4615,
"top_word": "general"
},
"D27": {
"size": 15,
"stories": 12,
"dominant": 0.1333,
"coherence": 0.7715,
"B0_tight": false,
"S1": 0.5647,
"S2": 0.9125,
"S3": 0.7143,
"S4": 0.0259,
"S5": 0.0825,
"S6": 0.1333,
"top_word": "advancement"
},
"D28": {
"size": 12,
"stories": 9,
"dominant": 0.3333,
"coherence": 0.7787,
"B0_tight": false,
"S1": 0.5651,
"S2": 0.9036,
"S3": 0.5,
"S4": 0.0094,
"S5": 0.1301,
"S6": 0.1667,
"top_word": "voice"
},
"D29": {
"size": 19,
"stories": 14,
"dominant": 0.1579,
"coherence": 0.791,
"B0_tight": true,
"S1": 0.5995,
"S2": 0.8219,
"S3": 0.5758,
"S4": 0.0086,
"S5": 0.0517,
"S6": 0.1053,
"top_word": "injured"
},
"D30": {
"size": 15,
"stories": 11,
"dominant": 0.2,
"coherence": 0.8087,
"B0_tight": true,
"S1": 0.6262,
"S2": 0.9085,
"S3": 0.6,
"S4": 0.0366,
"S5": 0.3992,
"S6": 0.2,
"top_word": "cop"
},
"D31": {
"size": 22,
"stories": 16,
"dominant": 0.1818,
"coherence": 0.7827,
"B0_tight": false,
"S1": 0.5901,
"S2": 0.8642,
"S3": 0.5238,
"S4": 0.0252,
"S5": 0.2374,
"S6": 0.2273,
"top_word": "party"
},
"D32": {
"size": 15,
"stories": 10,
"dominant": 0.3333,
"coherence": 0.7977,
"B0_tight": true,
"S1": 0.5989,
"S2": 0.8452,
"S3": 0.4054,
"S4": 0.0376,
"S5": 0.1405,
"S6": 0.1333,
"top_word": "fat"
},
"D33": {
"size": 15,
"stories": 13,
"dominant": 0.1333,
"coherence": 0.8089,
"B0_tight": true,
"S1": 0.6283,
"S2": 0.9035,
"S3": 0.7895,
"S4": 0.0211,
"S5": 0.1254,
"S6": 0.1333,
"top_word": "socialite"
},
"D34": {
"size": 24,
"stories": 13,
"dominant": 0.25,
"coherence": 0.7782,
"B0_tight": false,
"S1": 0.5808,
"S2": 0.8671,
"S3": 0.3333,
"S4": 0.0119,
"S5": 0.0734,
"S6": 0.125,
"top_word": "rosy"
},
"D35": {
"size": 28,
"stories": 24,
"dominant": 0.0714,
"coherence": 0.7861,
"B0_tight": false,
"S1": 0.6035,
"S2": 0.9628,
"S3": 0.7778,
"S4": 0.0285,
"S5": 0.0818,
"S6": 0.0714,
"top_word": "secretive"
},
"D36": {
"size": 6,
"stories": 6,
"dominant": 0.1667,
"coherence": 0.8009,
"B0_tight": true,
"S1": 0.5697,
"S2": 1.0,
"S3": 1.0,
"S4": 0.0266,
"S5": 0.0389,
"S6": 0.5,
"top_word": "funeral"
},
"D37": {
"size": 18,
"stories": 17,
"dominant": 0.1111,
"coherence": 0.7886,
"B0_tight": false,
"S1": 0.6002,
"S2": 1.157,
"S3": 0.9,
"S4": 0.0043,
"S5": 0.1383,
"S6": 0.1111,
"top_word": "umbrella"
},
"D38": {
"size": 16,
"stories": 12,
"dominant": 0.1875,
"coherence": 0.7898,
"B0_tight": false,
"S1": 0.5954,
"S2": 0.9023,
"S3": 0.5714,
"S4": 0.043,
"S5": 0.1472,
"S6": 0.125,
"top_word": "outsider"
},
"D39": {
"size": 20,
"stories": 8,
"dominant": 0.25,
"coherence": 0.8116,
"B0_tight": true,
"S1": 0.6334,
"S2": 0.9203,
"S3": 0.2857,
"S4": 0.0375,
"S5": 0.2123,
"S6": 1.0,
"top_word": "young"
},
"D40": {
"size": 15,
"stories": 11,
"dominant": 0.2,
"coherence": 0.7731,
"B0_tight": false,
"S1": 0.5661,
"S2": 0.9081,
"S3": 0.6,
"S4": 0.0429,
"S5": 0.1071,
"S6": 0.1333,
"top_word": "farmer"
}
}
+17
View File
@@ -0,0 +1,17 @@
co-association run k=50 seed=21
co-association run k=50 seed=22
co-association run k=60 seed=21
co-association run k=60 seed=22
co-association run k=70 seed=21
co-association run k=70 seed=22
co-association run k=80 seed=21
co-association run k=80 seed=22
co-association run k=90 seed=21
co-association run k=90 seed=22
co-association run k=100 seed=21
co-association run k=100 seed=22
dev: 40 clusters; prose cross-story baseline 0.5858; wrote signals-dev.json
real 2m49.256s
user 2m37.464s
sys 0m1.440s
+576
View File
@@ -0,0 +1,576 @@
{
"T01": {
"size": 10,
"stories": 9,
"dominant": 0.2,
"coherence": 0.8036,
"B0_tight": true,
"S1": 0.6068,
"S2": 1.0274,
"S3": 0.8333,
"S4": 0.0296,
"S5": 0.0944,
"S6": 0.2,
"top_word": "readings"
},
"T02": {
"size": 23,
"stories": 17,
"dominant": 0.1304,
"coherence": 0.7795,
"B0_tight": false,
"S1": 0.5875,
"S2": 0.8942,
"S3": 0.5897,
"S4": 0.0023,
"S5": 0.0787,
"S6": 0.087,
"top_word": "urgent"
},
"T03": {
"size": 11,
"stories": 7,
"dominant": 0.3636,
"coherence": 0.8021,
"B0_tight": true,
"S1": 0.6016,
"S2": 0.927,
"S3": 0.44,
"S4": 0.0394,
"S5": 0.15,
"S6": 0.1818,
"top_word": "futility"
},
"T04": {
"size": 20,
"stories": 14,
"dominant": 0.2,
"coherence": 0.778,
"B0_tight": false,
"S1": 0.5819,
"S2": 0.9131,
"S3": 0.5263,
"S4": 0.0219,
"S5": 0.1281,
"S6": 0.1,
"top_word": "mounted"
},
"T05": {
"size": 30,
"stories": 19,
"dominant": 0.1333,
"coherence": 0.7942,
"B0_tight": false,
"S1": 0.6157,
"S2": 0.9193,
"S3": 0.4545,
"S4": 0.0491,
"S5": 0.132,
"S6": 0.1,
"top_word": "crook"
},
"T06": {
"size": 13,
"stories": 4,
"dominant": 0.3846,
"coherence": 0.791,
"B0_tight": false,
"S1": 0.5773,
"S2": 0.8802,
"S3": 0.2766,
"S4": 0.0227,
"S5": 0.1549,
"S6": 0.2308,
"top_word": "ruby"
},
"T07": {
"size": 29,
"stories": 25,
"dominant": 0.069,
"coherence": 0.7935,
"B0_tight": false,
"S1": 0.6161,
"S2": 0.9495,
"S3": 0.7838,
"S4": 0.0263,
"S5": 0.0864,
"S6": 0.069,
"top_word": "courted"
},
"T08": {
"size": 14,
"stories": 13,
"dominant": 0.1429,
"coherence": 0.7932,
"B0_tight": false,
"S1": 0.599,
"S2": 0.8026,
"S3": 0.875,
"S4": 0.0277,
"S5": 0.0678,
"S6": 0.2857,
"top_word": "meals"
},
"T09": {
"size": 43,
"stories": 28,
"dominant": 0.1628,
"coherence": 0.7781,
"B0_tight": false,
"S1": 0.594,
"S2": 0.9135,
"S3": 0.4019,
"S4": 0.0337,
"S5": 0.0715,
"S6": 0.0465,
"top_word": "sensing"
},
"T10": {
"size": 10,
"stories": 5,
"dominant": 0.4,
"coherence": 0.8198,
"B0_tight": true,
"S1": 0.6285,
"S2": 0.9469,
"S3": 0.3571,
"S4": 0.0828,
"S5": 0.663,
"S6": 0.7,
"top_word": "caliph"
},
"T11": {
"size": 9,
"stories": 8,
"dominant": 0.2222,
"coherence": 0.81,
"B0_tight": true,
"S1": 0.6118,
"S2": 0.9297,
"S3": 0.8182,
"S4": 0.0288,
"S5": 0.1782,
"S6": 0.4444,
"top_word": "doctor"
},
"T12": {
"size": 21,
"stories": 19,
"dominant": 0.0952,
"coherence": 0.7819,
"B0_tight": false,
"S1": 0.5913,
"S2": 0.9127,
"S3": 0.84,
"S4": 0.0394,
"S5": 0.1988,
"S6": 0.1429,
"top_word": "hosts"
},
"T13": {
"size": 9,
"stories": 6,
"dominant": 0.3333,
"coherence": 0.7892,
"B0_tight": false,
"S1": 0.5547,
"S2": 0.7469,
"S3": 0.5294,
"S4": 0.0234,
"S5": 0.0718,
"S6": 0.5556,
"top_word": "riddle"
},
"T14": {
"size": 28,
"stories": 23,
"dominant": 0.1071,
"coherence": 0.7787,
"B0_tight": false,
"S1": 0.5906,
"S2": 0.9057,
"S3": 0.6667,
"S4": 0.0227,
"S5": 0.1005,
"S6": 0.0714,
"top_word": "discussing"
},
"T15": {
"size": 32,
"stories": 23,
"dominant": 0.125,
"coherence": 0.788,
"B0_tight": false,
"S1": 0.6066,
"S2": 0.8803,
"S3": 0.5517,
"S4": 0.0363,
"S5": 0.2058,
"S6": 0.0625,
"top_word": "host"
},
"T16": {
"size": 13,
"stories": 9,
"dominant": 0.2308,
"coherence": 0.7957,
"B0_tight": false,
"S1": 0.5979,
"S2": 0.8912,
"S3": 0.5652,
"S4": 0.0397,
"S5": 0.094,
"S6": 0.1538,
"top_word": "members"
},
"T17": {
"size": 30,
"stories": 22,
"dominant": 0.1,
"coherence": 0.7816,
"B0_tight": false,
"S1": 0.5961,
"S2": 0.895,
"S3": 0.625,
"S4": 0.0322,
"S5": 0.1075,
"S6": 0.1333,
"top_word": "rejects"
},
"T18": {
"size": 18,
"stories": 7,
"dominant": 0.2778,
"coherence": 0.8102,
"B0_tight": true,
"S1": 0.6259,
"S2": 0.9018,
"S3": 0.2812,
"S4": 0.0358,
"S5": 0.2685,
"S6": 1.0,
"top_word": "young"
},
"T19": {
"size": 13,
"stories": 8,
"dominant": 0.3846,
"coherence": 0.7968,
"B0_tight": false,
"S1": 0.5948,
"S2": 0.8967,
"S3": 0.3714,
"S4": 0.0314,
"S5": 0.1688,
"S6": 0.1538,
"top_word": "assistant"
},
"T20": {
"size": 12,
"stories": 8,
"dominant": 0.25,
"coherence": 0.801,
"B0_tight": true,
"S1": 0.6017,
"S2": 0.8608,
"S3": 0.5455,
"S4": 0.0605,
"S5": 0.2197,
"S6": 0.25,
"top_word": "town's"
},
"T21": {
"size": 7,
"stories": 6,
"dominant": 0.2857,
"coherence": 0.8215,
"B0_tight": true,
"S1": 0.6128,
"S2": 0.7869,
"S3": 0.7778,
"S4": 0.0413,
"S5": 0.1944,
"S6": 0.2857,
"top_word": "alone"
},
"T22": {
"size": 5,
"stories": 5,
"dominant": 0.2,
"coherence": 0.8181,
"B0_tight": true,
"S1": 0.5866,
"S2": 1.0,
"S3": 1.0,
"S4": -0.0202,
"S5": 0.125,
"S6": 0.4,
"top_word": "understand"
},
"T23": {
"size": 28,
"stories": 19,
"dominant": 0.1071,
"coherence": 0.7777,
"B0_tight": false,
"S1": 0.5883,
"S2": 0.9063,
"S3": 0.56,
"S4": 0.0264,
"S5": 0.1369,
"S6": 0.0714,
"top_word": "seedy"
},
"T24": {
"size": 9,
"stories": 8,
"dominant": 0.2222,
"coherence": 0.794,
"B0_tight": false,
"S1": 0.5836,
"S2": 0.9655,
"S3": 0.8182,
"S4": 0.0696,
"S5": 0.0579,
"S6": 0.2222,
"top_word": "riders"
},
"T25": {
"size": 27,
"stories": 20,
"dominant": 0.1111,
"coherence": 0.8018,
"B0_tight": true,
"S1": 0.6283,
"S2": 0.9462,
"S3": 0.6,
"S4": 0.0249,
"S5": 0.2182,
"S6": 0.0741,
"top_word": "sincerity"
},
"T26": {
"size": 16,
"stories": 10,
"dominant": 0.375,
"coherence": 0.7714,
"B0_tight": false,
"S1": 0.5543,
"S2": 0.8432,
"S3": 0.3333,
"S4": 0.0019,
"S5": 0.0576,
"S6": 0.125,
"top_word": "tramp"
},
"T27": {
"size": 18,
"stories": 16,
"dominant": 0.1111,
"coherence": 0.7602,
"B0_tight": false,
"S1": 0.5519,
"S2": 0.8529,
"S3": 0.8182,
"S4": 0.0124,
"S5": 0.0697,
"S6": 0.1111,
"top_word": "central"
},
"T28": {
"size": 14,
"stories": 8,
"dominant": 0.3571,
"coherence": 0.7745,
"B0_tight": false,
"S1": 0.5512,
"S2": 0.8035,
"S3": 0.3684,
"S4": 0.038,
"S5": 0.0659,
"S6": 0.1429,
"top_word": "millionaire's"
},
"T29": {
"size": 7,
"stories": 6,
"dominant": 0.2857,
"coherence": 0.7972,
"B0_tight": true,
"S1": 0.5706,
"S2": 0.8648,
"S3": 0.7778,
"S4": 0.0277,
"S5": 0.0476,
"S6": 0.2857,
"top_word": "preacher"
},
"T30": {
"size": 13,
"stories": 9,
"dominant": 0.2308,
"coherence": 0.8003,
"B0_tight": true,
"S1": 0.6037,
"S2": 0.8484,
"S3": 0.5652,
"S4": 0.0567,
"S5": 0.1229,
"S6": 0.2308,
"top_word": "runaway"
},
"T31": {
"size": 13,
"stories": 7,
"dominant": 0.2308,
"coherence": 0.8023,
"B0_tight": true,
"S1": 0.6044,
"S2": 0.866,
"S3": 0.4483,
"S4": 0.0017,
"S5": 0.141,
"S6": 0.1538,
"top_word": "medicine"
},
"T32": {
"size": 31,
"stories": 20,
"dominant": 0.1613,
"coherence": 0.7767,
"B0_tight": false,
"S1": 0.586,
"S2": 0.8589,
"S3": 0.4366,
"S4": 0.0232,
"S5": 0.114,
"S6": 0.0968,
"top_word": "concern"
},
"T33": {
"size": 23,
"stories": 15,
"dominant": 0.1304,
"coherence": 0.786,
"B0_tight": false,
"S1": 0.5984,
"S2": 0.9224,
"S3": 0.5349,
"S4": 0.0227,
"S5": 0.2668,
"S6": 0.087,
"top_word": "board"
},
"T34": {
"size": 11,
"stories": 9,
"dominant": 0.1818,
"coherence": 0.8044,
"B0_tight": true,
"S1": 0.6076,
"S2": 0.8433,
"S3": 0.7333,
"S4": 0.0337,
"S5": 0.0682,
"S6": 0.3636,
"top_word": "saloon"
},
"T35": {
"size": 16,
"stories": 12,
"dominant": 0.125,
"coherence": 0.8221,
"B0_tight": true,
"S1": 0.6538,
"S2": 0.9854,
"S3": 0.6667,
"S4": 0.0241,
"S5": 0.3292,
"S6": 0.125,
"top_word": "reward"
},
"T36": {
"size": 5,
"stories": 5,
"dominant": 0.2,
"coherence": 0.8158,
"B0_tight": true,
"S1": 0.5819,
"S2": 1.0,
"S3": 1.0,
"S4": 0.0438,
"S5": 0.0083,
"S6": 0.4,
"top_word": "miner"
},
"T37": {
"size": 22,
"stories": 19,
"dominant": 0.0909,
"coherence": 0.7751,
"B0_tight": false,
"S1": 0.5816,
"S2": 0.9899,
"S3": 0.7857,
"S4": 0.0082,
"S5": 0.0559,
"S6": 0.0909,
"top_word": "friendship"
},
"T38": {
"size": 23,
"stories": 18,
"dominant": 0.1304,
"coherence": 0.788,
"B0_tight": false,
"S1": 0.6009,
"S2": 0.8382,
"S3": 0.6571,
"S4": 0.0028,
"S5": 0.0791,
"S6": 0.087,
"top_word": "soap"
},
"T39": {
"size": 21,
"stories": 14,
"dominant": 0.2381,
"coherence": 0.8108,
"B0_tight": true,
"S1": 0.6378,
"S2": 0.9459,
"S3": 0.4286,
"S4": 0.0327,
"S5": 0.2484,
"S6": 0.0952,
"top_word": "parting"
},
"T40": {
"size": 5,
"stories": 5,
"dominant": 0.2,
"coherence": 0.8193,
"B0_tight": true,
"S1": 0.5891,
"S2": 1.0,
"S3": 1.0,
"S4": 0.0397,
"S5": 0.05,
"S6": 0.0,
"top_word": ""
},
"T41": {
"size": 19,
"stories": 10,
"dominant": 0.2105,
"coherence": 0.8084,
"B0_tight": true,
"S1": 0.6265,
"S2": 0.8846,
"S3": 0.3725,
"S4": 0.0277,
"S5": 0.1803,
"S6": 0.4737,
"top_word": "artist"
}
}
@@ -0,0 +1,5 @@
test: 41 clusters; prose cross-story baseline 0.5858; wrote signals-test.json
real 0m20.798s
user 0m16.793s
sys 0m3.937s
+97
View File
@@ -0,0 +1,97 @@
"""Compute the pre-registered selection signals S1-S6 (SELECTION.md) for a candidates file.
python3 signals.py candidates-dev.json # writes signals-dev.json
python3 signals.py candidates-test.json # writes signals-test.json
No inference: summary vectors, prose vectors, summary text and story ids only.
S5 needs 12 extra k-means runs; they are computed once and cached in coassoc.json.
"""
import collections, json, math, pathlib, random, re, statistics, sys
cand_path = pathlib.Path(sys.argv[1])
set_name = cand_path.stem.replace('candidates-', '')
PARTITION_SEED = {'dev': 11, 'test': 12}[set_name]
PARTITION_K = 60
sys.argv = ['measure.py', 'summary_embeddings.json']
exec(pathlib.Path('measure.py').read_text(encoding='utf-8').split("print(f'{path.name}")[0])
# now defined: chunks, V (unit summary vectors), n, dim, story, dot, norm, kmeans, describe
prose_raw = json.loads(pathlib.Path('embeddings.json').read_text())
P = [norm(v) for v in (prose_raw['vectors'] if isinstance(prose_raw, dict) else prose_raw)[:n]]
summaries = json.loads(pathlib.Path('summaries_clean.json').read_text(encoding='utf-8'))['summaries']
text = {x['chunk']: x['summary'] for x in summaries}
candidates = json.loads(cand_path.read_text())
# Sanity: the candidates must be exactly this partition's recurring clusters.
partition = [sorted(c) for c in kmeans(PARTITION_K, PARTITION_SEED)]
assert set(map(tuple, candidates.values())) <= set(map(tuple, partition)), 'candidates do not match the partition'
sized_coh = [describe(c)[3] for c in partition if len(c) >= MIN_SIZE]
tight_cut = statistics.median(sized_coh)
# S5: co-association across runs that are neither the dev nor the test partition.
CO_RUNS = [(k, s) for k in (50, 60, 70, 80, 90, 100) for s in (21, 22)]
co_path = pathlib.Path('coassoc.json')
if co_path.exists():
co = json.loads(co_path.read_text())
else:
co = [[0] * n for _ in range(n)]
for k, s in CO_RUNS:
for g in kmeans(k, s):
for a in g:
row = co[a]
for b in g: row[b] += 1
print(f' co-association run k={k} seed={s}', flush=True)
co_path.write_text(json.dumps(co))
# S4 baseline: mean prose cosine over random cross-story pairs in the whole corpus.
rnd = random.Random(5)
base = []
while len(base) < 20000:
a, b = rnd.randrange(n), rnd.randrange(n)
if story[a] != story[b]: base.append(dot(P[a], P[b]))
prose_base = sum(base) / len(base)
STOP = set("""a an the and or but of to in on at for with by from as into over under about after before
while during than then that this these those it its his her hers him he she they them their theirs we our
you your i me my is are was were be been being has have had do does did not no nor so such who whom whose
which what when where why how all any each both either neither one two some other others another more most
less least very just only also even yet still now up down out off away back again once own same too can
could will would shall should may might must upon despite toward towards between among amid amidst
someone someone's someone’s""".split())
docs = [set(re.findall(r"[a-z][a-z'’]+", text[i].lower())) - STOP for i in range(n)]
df = collections.Counter(w for d in docs for w in d)
def signals(members):
size, nst, dom, coh = describe(members)
cross, within, pcross, coa = [], [], [], []
for x in range(len(members)):
for y in range(x + 1, len(members)):
a, b = members[x], members[y]
coa.append(co[a][b] / len(CO_RUNS))
if story[a] == story[b]:
within.append(dot(V[a], V[b]))
else:
cross.append(dot(V[a], V[b])); pcross.append(dot(P[a], P[b]))
s1 = sum(cross) / len(cross)
s2 = s1 / (sum(within) / len(within)) if within else 1.0
counts = collections.Counter(story[i] for i in members)
s3 = (1 / sum((c / size) ** 2 for c in counts.values())) / size
s4 = sum(pcross) / len(pcross) - prose_base
s5 = sum(coa) / len(coa)
cw = collections.Counter(w for i in members for w in docs[i])
best = None
for w, c in cw.items():
if c < 2: continue
score = math.log((c + .5) / (size - c + .5)) - math.log((df[w] + .5) / (n - df[w] + .5))
if best is None or score > best[0]: best = (score, w, c)
s6, word = (best[2] / size, best[1]) if best else (0.0, '')
return {'size': size, 'stories': nst, 'dominant': round(dom, 4), 'coherence': round(coh, 4),
'B0_tight': coh >= tight_cut,
'S1': round(s1, 4), 'S2': round(s2, 4), 'S3': round(s3, 4), 'S4': round(s4, 4),
'S5': round(s5, 4), 'S6': round(s6, 4), 'top_word': word}
out = {cid: signals(members) for cid, members in candidates.items()}
out_path = pathlib.Path(f'signals-{set_name}.json')
out_path.write_text(json.dumps(out, indent=1))
print(f'{set_name}: {len(out)} clusters; prose cross-story baseline {prose_base:.4f}; wrote {out_path}')
+58
View File
@@ -0,0 +1,58 @@
"""Split Gutenberg O. Henry volumes into individual stories.
Deterministic: each volume lists its stories in a CONTENTS block as
ALL-CAPS lines, then repeats each title as a heading in the body. No model
involved -- this is the segmentation step we get for free.
"""
import re, json, sys, pathlib
ROMAN = re.compile(r'^\s*[IVXLC]+\.\s+')
CAPS = re.compile(r'^[ \t]*([A-Z0-9][A-Z0-9 ,.;:\'\"\-’‘“”!?&()À-ÖØ-Þ]{3,70})[ \t]*$')
def strip_boilerplate(text):
i = text.find('*** START')
j = text.find('*** END')
if i >= 0: text = text[text.find('\n', i) + 1:] if j < 0 else text[text.find('\n', i) + 1:j]
return text
def split_volume(path):
raw = pathlib.Path(path).read_text(encoding='utf-8', errors='replace')
title_m = re.search(r'^Title:\s*(.+)$', raw, re.M)
volume = title_m.group(1).strip() if title_m else pathlib.Path(path).stem
body = strip_boilerplate(raw)
lines = body.split('\n')
# Two volumes number their contents (" I. THE VOICE OF THE CITY") while the
# body heading is the bare title, so strip the numeral before matching.
lines = [ROMAN.sub('', l) for l in lines]
caps_idx = [(n, CAPS.match(l).group(1).strip()) for n, l in enumerate(lines) if CAPS.match(l)]
if not caps_idx:
return volume, []
# The contents block is the densest early run of caps lines; every title in
# it appears again later as a heading. Use the *second* occurrence.
counts = {}
for n, t in caps_idx:
counts.setdefault(t, []).append(n)
headings = sorted((ns[-1], t) for t, ns in counts.items() if len(ns) >= 2 and len(t.split()) <= 12)
stories = []
for k, (n, t) in enumerate(headings):
end = headings[k + 1][0] if k + 1 < len(headings) else len(lines)
text = '\n'.join(lines[n + 1:end]).strip()
if len(text.split()) >= 400:
stories.append({'volume': volume, 'title': t, 'words': len(text.split()), 'text': text})
return volume, stories
out = []
for p in sorted(pathlib.Path('corpus').glob('*.txt')):
vol, st = split_volume(p)
print(f'{p.name:14} {vol[:44]:46} {len(st):3} stories')
out.extend(st)
print(f'\ntotal stories: {len(out)}')
if out:
ws = sorted(s['words'] for s in out)
print(f'words/story min {ws[0]} median {ws[len(ws)//2]} max {ws[-1]}')
print(f'median pages ~{ws[len(ws)//2]//250}')
pathlib.Path('stories.json').write_text(json.dumps(out, indent=1), encoding='utf-8')
File diff suppressed because one or more lines are too long
+79
View File
@@ -0,0 +1,79 @@
"""Replace names in summaries with "someone", deterministically.
A 3B model ignores "never use a name" more often than it obeys it: 27 of 40
pilot summaries still carried names after a reminder and a retry. Names are
exactly the story-identity signal the summaries exist to remove, so this is
done by code rather than by prompt.
The name lexicon comes from the corpus itself: a word counts as a name when it
appears capitalised mid-sentence at least twice and is almost never seen in
lowercase. Words the model introduces that never occur in lowercase anywhere in
the corpus are treated the same way.
python3 strip_names.py summaries.json summaries_clean.json
python3 strip_names.py summaries.json --show # before/after, writes nothing
"""
import collections, json, pathlib, re, sys
HONORIFICS = {'Mr', 'Mrs', 'Ms', 'Miss', 'Dr', 'Mr.', 'Mrs.', 'Ms.', 'Dr.'}
LEAD, TRAIL = '"“‘(', '"”’),.;:!?'
chunks = json.loads(pathlib.Path('chunks.json').read_text(encoding='utf-8'))
cap, low = collections.Counter(), collections.Counter()
for c in chunks:
for sentence in re.split(r'(?<=[.!?"”])\s+', c['text']):
for i, tok in enumerate(re.findall(r"[A-Za-z][A-Za-z'’]*", sentence)):
base = re.sub(r"['’]s$", '', tok)
if base[0].isupper():
if i: cap[base] += 1
else:
low[base.lower()] += 1
NAMES = {w for w, n in cap.items() if n >= 2 and low[w.lower()] <= n * 0.1 and w != 'I'}
def is_name(base, first):
if not base or not base[0].isupper() or base == 'I': return False
if base in NAMES: return True
return not first and low[base.lower()] == 0
def clean(summary):
out, removed, prev_name = [], [], False
for i, w in enumerate(summary.split()):
head = w[:len(w) - len(w.lstrip(LEAD))]
body = w[len(head):]
tail = body[len(body.rstrip(TRAIL)):] if body.rstrip(TRAIL) != body else ''
core = body[:len(body) - len(tail)] if tail else body
if core + '.' in HONORIFICS and tail.startswith('.'):
core, tail = core + '.', tail[1:]
possessive = re.search(r"['’]s$", core)
base = core[:possessive.start()] if possessive else core
if base in HONORIFICS or is_name(base, i == 0 or (out and out[-1].endswith(('.', '!', '?')))):
removed.append(core)
word = head + ('someone’s' if possessive else 'someone') + tail
if prev_name:
out[-1] = word # "Mr. Peters" and "Big Jim Dougherty" collapse to one someone
else:
out.append(word)
prev_name = not tail
else:
out.append(w)
prev_name = False
text = ' '.join(out)
return text[:1].upper() + text[1:], removed
src = pathlib.Path(sys.argv[1])
state = json.loads(src.read_text(encoding='utf-8'))
show = '--show' in sys.argv
changed = 0
for x in state['summaries']:
raw = x.get('raw', x['summary'])
cleaned, removed = clean(raw)
changed += bool(removed)
if show:
print(f"{x['chunk']:3} {'-' if not removed else '*'} {cleaned}")
if removed: print(f" removed: {', '.join(removed)}")
x['raw'], x['summary'], x['names_removed'] = raw, cleaned, removed
print(f'\n{len(NAMES)} names in the corpus lexicon; {changed} of {len(state["summaries"])} summaries changed')
if not show:
dst = pathlib.Path(sys.argv[2])
dst.write_text(json.dumps(state, indent=1), encoding='utf-8')
print(f'wrote {dst}')
@@ -0,0 +1,206 @@
{
"model": "qwen2.5:3b-instruct",
"prompt": "You describe the social situation in a passage of fiction in ONE sentence.\n\nRules:\n- Exactly one sentence, at most 25 words.\n- No names of people, places, businesses or streets. Say \"a clerk\", \"a landlady\", \"a rich man\", \"a city park\".\n- Describe what is happening between the people: who wants what from whom, who has power, what is at stake.\n- Do not describe the writing style, the narrator, or the mood.\n- Output only the sentence.",
"summaries": [
{
"chunk": 0,
"story": 0,
"summary": "A clerk at a city library struggles to recall any lesson about the collective voice of a big city from his school days."
},
{
"chunk": 1,
"story": 0,
"summary": "A clerk overhears a landlady and a rich man debate the city's voice, each wanting to interpret its meaning, stakes high."
},
{
"chunk": 2,
"story": 0,
"summary": "A rich man seeks the unique voice of New York City, interviewing a bartender for insights, while others in other cities provide their impressions."
},
{
"chunk": 3,
"story": 0,
"summary": "A clerk confronts a cop on Broadway, challenging authority with civic observations, only to be dismissed and then offered mundane city news."
},
{
"chunk": 4,
"story": 0,
"summary": "Cleon asks Bill for a hint to capture the city's soul, blending diverse sounds into a poetic essence."
},
{
"chunk": 5,
"story": 0,
"summary": "A rich man seeks validation from the city, seeking its voice, while a newsboy focuses on immediate needs."
},
{
"chunk": 6,
"story": 0,
"summary": "Aurelia waited alone on her stoop while I sat silently, our hands barely touching, neither of us knowing how to break the awkward silence."
},
{
"chunk": 7,
"story": 1,
"summary": "A poor clerk covets a quarter, while a rich executive seeks deeper truths in life's three conditions."
},
{
"chunk": 8,
"story": 1,
"summary": "Mrs. Hopkins browsed through department stores while avoiding instalment men, caught between her desire for home comforts and fear of debt."
},
{
"chunk": 9,
"story": 1,
"summary": "John Hopkins sat alone in his musty flat, eyeing art and Mrs. Hopkins' droning chatter, while a flea-bitten terrier looked at him with disgust."
},
{
"chunk": 10,
"story": 1,
"summary": "Hopkins, seeking groceries, confronts a grumpy clerk who refuses change, sparking a physical altercation in the store doorway."
},
{
"chunk": 11,
"story": 1,
"summary": "A frustrated John Hopkins, chased by a policeman and grocer, hailed a speeding chauffeur in a racing car, unaware of his identity."
},
{
"chunk": 12,
"story": 1,
"summary": "A young beauty demands a brave stranger's help against multiple attackers, while a chauffeur flatters and introduces them."
},
{
"chunk": 13,
"story": 1,
"summary": "John Hopkins, smug after a romantic victory, confronts a young man who refuses to be intimidated, leading to a confrontation."
},
{
"chunk": 14,
"story": 1,
"summary": "A young man demands Bess stop reading dangerous books, while his girlfriend argues over a stray dog, their relationship strained."
},
{
"chunk": 15,
"story": 2,
"summary": "Masie, a saleslady in the Biggest Store, observed and learned from 2,999 coworkers, blending beauty and shrewdness to navigate diverse customer types."
},
{
"chunk": 16,
"story": 2,
"summary": "A millionaire shopper hesitates as floorwalkers flirt with giggling girls at a glove counter."
},
{
"chunk": 17,
"story": 2,
"summary": "Irving Carter, a millionaire, felt both flattered and awkward as he stood before a shopgirl, unsure how to navigate the social situation."
},
{
"chunk": 18,
"story": 2,
"summary": "A clerk approaches a woman, asking for a date, while she tactfully declines, setting a meeting."
},
{
"chunk": 19,
"story": 2,
"summary": "Carter, desperate for a date, awkwardly propositions Masie at a street corner, while she reveals her modest home and limited social life."
},
{
"chunk": 20,
"story": 2,
"summary": "Carter, desperate for Masie's hand, pressures her with promises of wealth and luxury, while subtly hinting at his true, unrequited feelings."
},
{
"chunk": 21,
"story": 2,
"summary": "Carter persisted, coaxing the shopgirl Masie into a future of travel and leisure, while she hesitated, her eyes lighting up with possibility."
},
{
"chunk": 22,
"story": 2,
"summary": "A clerk coolly suggests leaving a city park, while a rich man feigns indifference, secretly hoping she will change her mind."
},
{
"chunk": 23,
"story": 3,
"summary": "Big Jim Dougherty sought power and status in Manhattan's sporty clique, where size and shaven faces held sway."
},
{
"chunk": 24,
"story": 3,
"summary": "A rich man frequents city parks alone, while his wife remains at home, unaware of his nocturnal escapades."
},
{
"chunk": 25,
"story": 3,
"summary": "Big Jim\" listened to his wife's demands for a night out, revealing power imbalance and his capitulation."
},
{
"chunk": 26,
"story": 3,
"summary": "Big Jim\" Dougherty led his wife past Seltzer's caf\u00e9, then to Hoogley's, flaunting her in front of his drinking buddies."
},
{
"chunk": 27,
"story": 3,
"summary": "A waiter conducts Mr. Dougherty and his wife to a table amidst a lively crowd, while she selects wine and he admires her choices, unaware of her hidden charm."
},
{
"chunk": 28,
"story": 3,
"summary": "The Honorable Patrick Corrigan, a powerful figure, entertained his friend Dougherty and his wife, Delia, lavishly, showcasing his charm and wit."
},
{
"chunk": 29,
"story": 3,
"summary": "The Honorable Patrick covets Mrs. Dougherty's affection, but she outsmarts him, leaving him humbled and her home with new guests."
},
{
"chunk": 30,
"story": 3,
"summary": "A bride desires a peach from her distant lover, while he hesitates due to early spring's limited availability."
},
{
"chunk": 31,
"story": 3,
"summary": "The Kid bargains with a fruit vendor, vying for a peach, while a rich man's wife eagerly awaits her promised fruit, putting pressure on the vendor to act quickly."
},
{
"chunk": 32,
"story": 3,
"summary": "A clerk and a landlady haggle over oranges, with the clerk revealing he has no idea where to find them, hinting at his financial situation."
},
{
"chunk": 33,
"story": 3,
"summary": "A dozen men, led by the Kid, broke into a luxurious gambling room, confronting armed police and escaping with a prize."
},
{
"chunk": 34,
"story": 3,
"summary": "A rich man feasted ostentatiously, unaware his lunch was being ransacked by a street kid seeking revenge."
},
{
"chunk": 35,
"story": 3,
"summary": "The Kid, now a husband, waits for his bride at home, holding a peach she desires an orange instead."
},
{
"chunk": 36,
"story": 4,
"summary": "A city editor reads news of spring across the land while a farmer sees only winter on his bleak fields."
},
{
"chunk": 37,
"story": 4,
"summary": "Mr. Peters, desperate for his wife's dollar, conspires with Mr. Ragsdale and Mr. Kidd to steal it from Union Square park bench."
},
{
"chunk": 38,
"story": 4,
"summary": "Mr. Peters threatens to leave Mrs. Peters alone if she doesn't fetch the missing medical case note, setting up a power struggle between them."
},
{
"chunk": 39,
"story": 4,
"summary": "Mr. Peters calculated his next move, eyeing Mrs. Peters's defiance with calculated disdain."
}
]
}
@@ -0,0 +1,348 @@
{
"model": "qwen2.5:3b-instruct",
"prompt": "Describe the social situation in a passage of fiction in ONE sentence.\n\nRules:\n- Exactly one sentence, at most 25 words.\n- Never use anyone's name. Refer to each person only by the role the passage gives them: their job, their family tie, or their position.\n- Never name a place, business, street or city.\n- Say what is happening between the people: who wants what from whom, who holds power, what is at stake.\n- Do not describe the writing style, the narrator, or the mood.\n- Output only the sentence.",
"summaries": [
{
"chunk": 0,
"story": 0,
"summary": "Aurelia, a schoolteacher, seeks the wisdom of her former students to understand the complex vocal messages of a bustling city.",
"retried": false,
"flags": []
},
{
"chunk": 1,
"story": 0,
"summary": "I stammered, seeking a voice for the gargantuan city: \"Does it speak to you?",
"retried": true,
"flags": []
},
{
"chunk": 2,
"story": 0,
"summary": "I must find the Voice of the City, as assignments do, but Aurelia interrupts, and I seek Billy Magnus at a bar for insights into New York's unique city voices.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 3,
"story": 0,
"summary": "The cop, tasked with maintaining order, is indifferent to the city's cries for help, while the poet hears its vibrant, if often ignored, voice.",
"retried": true,
"flags": []
},
{
"chunk": 4,
"story": 0,
"summary": "Bill wanted Cleon to give him a hint of the city's soul and meaning, blending various sounds into a poetic Voice.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 5,
"story": 0,
"summary": "The poet seeks validation for his work, courting a former lover and seeking public acclaim, while a newsboy offers practical advice, highlighting the contrast between personal and public spheres.",
"retried": true,
"flags": [
"long"
]
},
{
"chunk": 6,
"story": 0,
"summary": "Aurelia waits on her porch as night deepens, while an unnamed figure watches, their hands finally touching in a moment of unspoken understanding.",
"retried": false,
"flags": []
},
{
"chunk": 7,
"story": 1,
"summary": "John Hopkins, a clerk at various urban businesses, seeks to understand life's fullness through poverty, love, and war, contrasting his experiences with those in rural areas.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 8,
"story": 1,
"summary": "Mrs.",
"retried": true,
"flags": []
},
{
"chunk": 9,
"story": 1,
"summary": "John Hopkins sat in his flat, seeking conversation to inject life into the tasteless existence, while Mrs.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 10,
"story": 1,
"summary": "Hopkins, seeking groceries, demands payment, but lacks change, provoking Freshmayer's tirade in a store dispute.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 11,
"story": 1,
"summary": "John Hopkins, fleeing from a confrontation with a policeman, is picked up by a masked chauffeur in a racing car, driven to an unknown destination.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 12,
"story": 1,
"summary": "Armand, the chauffeur, presents Hopkins to Milady, a beauty incensed by insults, for potential assistance against perceived threats.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 13,
"story": 1,
"summary": "John Hopkins, smoldering with romance, confronts a young man in a library, challenging him to etiquette lessons and warning of consequences.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 14,
"story": 1,
"summary": "Armand's young lady pressures Bess into giving up her pet St.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 15,
"story": 2,
"summary": "Masie, an eighteen-year-old saleslady in gloves, navigates the complexities of her job, observing and learning about various customers and her own evolving identity.",
"retried": false,
"flags": []
},
{
"chunk": 16,
"story": 2,
"summary": "Irving Carter, a millionaire, hesitates at the glove counter where floorwalker Masie, a flirtatious shopgirl, awaits, unaware of the unwanted attention he brings.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 17,
"story": 2,
"summary": "Irving Carter, millionaire, felt a sudden tolerance and contempt for his social standing as he stood awkwardly near a shopgirl he desired.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 18,
"story": 2,
"summary": "Carter, seeking a social connection, flatters Masie, who, to avoid social faux pas, suggests a clandestine rendezvous at her crowded home.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 19,
"story": 2,
"summary": "Carter, a young man, eagerly awaits a date with a street-corner shopgirl, while his mother chauffeurs him to a fancy restaurant.",
"retried": false,
"flags": []
},
{
"chunk": 20,
"story": 2,
"summary": "Carter, desperate for Masie's hand, pressures her with promises of wealth and love, while Masie teases him for his shallow claims and doubts his sincerity.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 21,
"story": 2,
"summary": "Carter persistently courted Masie, a shopgirl, offering her a life away from her mundane existence, while she reluctantly agreed, sensing the novelty of his grand plans.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 22,
"story": 2,
"summary": "Carter conceded her request to leave early, sensing her mood, while secretly rejoicing at the prospect of her potential marriage proposal.",
"retried": true,
"flags": []
},
{
"chunk": 23,
"story": 3,
"summary": "Big Jim Dougherty coveted social acceptance within the titled nobility of Manhattan's sport, a distinct race within the city's social hierarchy.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 24,
"story": 3,
"summary": "The sport desires the allure of the harem while maintaining a monogamous domestic life, unaware of his wife's presence at home.",
"retried": true,
"flags": []
},
{
"chunk": 25,
"story": 3,
"summary": "Big Jim\" Dougherty reluctantly agreed to go out for dinner after his wife insisted, surprising him with her boldness.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 26,
"story": 3,
"summary": "Big Jim Dougherty, unsure of his new wife's identity, decided to flaunt her at his usual haunts to prove her worthiness, leading her to Seltzer's caf\u00e9 and Hoogley's for dinner.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 27,
"story": 3,
"summary": "Seltzer's tribal gentlemen watched Mr.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 28,
"story": 3,
"summary": "The Honorable Patrick Corrigan, seeking to impress, engages all present in a lavish, entertaining display centered around his wife, Delia, who dazzles with wit and charm, while \"Big Jim\" remains aloof and speechless.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 29,
"story": 3,
"summary": "The Honorable Patrick, seeking to impress Mrs.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 30,
"story": 3,
"summary": "The bride, ensconced in her rocker, fantasized about her impending marriage to Kid McGarry, while he prepared to leave, unsure of his chances in the cold early spring.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 31,
"story": 3,
"summary": "The Kid, Dante's lover, haggles with Justus O'Callahan, a fruit vendor, for a peach, finding no immediate solution, while the bride eagerly awaits her promised Persian fruit.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 32,
"story": 3,
"summary": "The Kid seeks employment, offering his gambling knowledge to the Captain, who initially refuses but agrees to help after learning the Kid's past performances.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 33,
"story": 3,
"summary": "The captain leads a dozen men in a raid on a dark building, with the Kid guiding them, while Denver Dick joins the fray, leading a break for personal liberty that includes a physical confrontation with the Kid.",
"retried": true,
"flags": [
"names",
"long"
]
},
{
"chunk": 34,
"story": 3,
"summary": "The Kid, a streetwise thug, raids a fancy restaurant for hidden peaches, threatening violence if found, while undercover cop No.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 35,
"story": 3,
"summary": "The Kid, now a knight, returns to Camelot with a peach for his bride, who had requested it, despite her preference for an orange.",
"retried": true,
"flags": [
"names"
]
},
{
"chunk": 36,
"story": 4,
"summary": "The city editor reads news from across the country while the farmer waits for his children to seek their lovers.",
"retried": false,
"flags": []
},
{
"chunk": 37,
"story": 4,
"summary": "Mr.",
"retried": true,
"flags": []
},
{
"chunk": 38,
"story": 4,
"summary": "Mr.",
"retried": true,
"flags": []
},
{
"chunk": 39,
"story": 4,
"summary": "Mr.",
"retried": true,
"flags": []
}
]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,89 @@
17:12:36
838 scenes, resuming at 0, model qwen2.5:3b-instruct
10/838 9s prefill 0s gen 3s
20/838 18s prefill 0s gen 7s
30/838 27s prefill 1s gen 10s
40/838 35s prefill 1s gen 12s
50/838 45s prefill 3s gen 16s
60/838 56s prefill 4s gen 19s
70/838 67s prefill 6s gen 23s
80/838 77s prefill 8s gen 26s
90/838 88s prefill 10s gen 29s
100/838 98s prefill 12s gen 32s
110/838 109s prefill 14s gen 36s
120/838 120s prefill 16s gen 39s
130/838 131s prefill 18s gen 43s
140/838 141s prefill 20s gen 46s
150/838 152s prefill 22s gen 49s
160/838 162s prefill 24s gen 52s
170/838 173s prefill 26s gen 56s
180/838 184s prefill 28s gen 59s
190/838 201s prefill 30s gen 62s
200/838 211s prefill 32s gen 65s
210/838 222s prefill 34s gen 69s
220/838 232s prefill 36s gen 72s
230/838 242s prefill 38s gen 75s
240/838 253s prefill 40s gen 78s
250/838 264s prefill 42s gen 82s
260/838 274s prefill 44s gen 85s
270/838 285s prefill 46s gen 89s
280/838 296s prefill 48s gen 92s
290/838 307s prefill 50s gen 95s
300/838 317s prefill 52s gen 99s
310/838 328s prefill 54s gen 102s
320/838 339s prefill 56s gen 105s
330/838 349s prefill 58s gen 108s
340/838 360s prefill 60s gen 112s
350/838 371s prefill 62s gen 116s
360/838 383s prefill 64s gen 119s
370/838 393s prefill 67s gen 123s
380/838 404s prefill 69s gen 126s
390/838 415s prefill 71s gen 129s
400/838 425s prefill 73s gen 132s
410/838 436s prefill 75s gen 135s
420/838 446s prefill 77s gen 139s
430/838 466s prefill 79s gen 142s
440/838 476s prefill 80s gen 145s
450/838 487s prefill 82s gen 148s
460/838 497s prefill 84s gen 151s
470/838 508s prefill 86s gen 154s
480/838 518s prefill 88s gen 158s
490/838 529s prefill 90s gen 161s
500/838 540s prefill 92s gen 165s
510/838 550s prefill 94s gen 168s
520/838 561s prefill 96s gen 171s
530/838 571s prefill 98s gen 175s
540/838 582s prefill 100s gen 178s
550/838 593s prefill 102s gen 182s
560/838 603s prefill 103s gen 185s
570/838 614s prefill 105s gen 188s
580/838 625s prefill 107s gen 192s
590/838 637s prefill 109s gen 195s
600/838 647s prefill 111s gen 198s
610/838 657s prefill 113s gen 201s
620/838 667s prefill 115s gen 204s
630/838 678s prefill 117s gen 207s
640/838 689s prefill 119s gen 210s
650/838 699s prefill 121s gen 214s
660/838 710s prefill 123s gen 217s
670/838 720s prefill 125s gen 220s
680/838 730s prefill 126s gen 223s
690/838 743s prefill 128s gen 227s
700/838 754s prefill 130s gen 231s
710/838 765s prefill 132s gen 234s
720/838 776s prefill 134s gen 237s
730/838 788s prefill 136s gen 241s
740/838 799s prefill 138s gen 244s
750/838 819s prefill 140s gen 248s
760/838 830s prefill 142s gen 251s
770/838 842s prefill 144s gen 254s
780/838 853s prefill 146s gen 258s
790/838 863s prefill 148s gen 261s
800/838 874s prefill 150s gen 265s
810/838 886s prefill 152s gen 268s
820/838 897s prefill 154s gen 272s
830/838 909s prefill 156s gen 275s
838/838 918s prefill 157s gen 278s
done: 838 summaries, 918s this session
exit 0
17:27:54
@@ -0,0 +1,6 @@
40 scenes, resuming at 0, model qwen2.5:3b-instruct
10/40 18s prefill 2s gen 6s
20/40 35s prefill 4s gen 12s
30/40 55s prefill 7s gen 19s
40/40 74s prefill 9s gen 25s
done: 40 summaries, 74s this session
@@ -0,0 +1,6 @@
40 scenes, resuming at 0, model qwen2.5:3b-instruct
10/40 12s prefill 2s gen 3s
20/40 22s prefill 4s gen 6s
30/40 33s prefill 6s gen 9s
40/40 43s prefill 8s gen 12s
done: 40 summaries, 43s this session
+67
View File
@@ -0,0 +1,67 @@
"""Reduce each scene to one generic sentence about the SITUATION, not the story.
The 2026-09-10 probe found that prose embeddings cluster by story identity --
names, setting, narrator voice -- rather than by what kind of situation a scene
is. This strips exactly those signals before embedding.
python3 summarise.py --limit 40 # pilot: time it and read the output
python3 summarise.py # everything, resuming from summaries.json
Model from STP_CHAT_MODEL (default qwen2.5:3b-instruct): the requirement is a
small local model, so the prompt is written for one.
"""
import argparse, json, os, pathlib, re, time
import ollama
ap = argparse.ArgumentParser()
ap.add_argument('--limit', type=int, default=None)
args = ap.parse_args()
MODEL = os.environ.get('STP_CHAT_MODEL', 'qwen2.5:3b-instruct')
# v1 gave examples of roles ("a clerk", "a landlady", "a rich man", "a city
# park"). A 3B model copied them into scenes that contain none of those people,
# which would make unrelated scenes cluster together and fake the very
# recurrence this probe measures. v2 names no example role at all.
SYSTEM = """Describe the social situation in a passage of fiction in ONE sentence.
Rules:
- Exactly one sentence, at most 25 words.
- Never use anyone's name. Refer to each person only by the role the passage gives them: their job, their family tie, or their position.
- Never name a place, business, street or city.
- Say what is happening between the people: who wants what from whom, who holds power, what is at stake.
- Do not describe the writing style, the narrator, or the mood.
- Output only the sentence."""
# The v2 pilot also tried one retry with a reminder whenever a name slipped
# through. It fired 35 times in 40, nearly doubled the run, and 27 summaries
# still carried names -- so there is no retry. Names are removed afterwards by
# strip_names.py, deterministically.
# A full stop after these is not the end of a sentence ("Mr. Peters", "St. Bernard").
END = re.compile(r'(?<!\bMr)(?<!\bMrs)(?<!\bMs)(?<!\bDr)(?<!\bSt)(?<!\bNo)[.!?](?:\s|$)')
def first_sentence(text):
text = re.sub(r'\s+', ' ', text).strip().strip('"')
m = END.search(text)
return text[:m.end()].strip() if m else text
chunks = json.loads(pathlib.Path('chunks.json').read_text(encoding='utf-8'))
if args.limit: chunks = chunks[:args.limit]
out = pathlib.Path('summaries.json')
state = json.loads(out.read_text()) if out.exists() else {'model': MODEL, 'prompt': SYSTEM, 'summaries': []}
if state['model'] != MODEL or state['prompt'] != SYSTEM:
raise SystemExit('summaries.json was made with a different model or prompt; move it aside first')
done = state['summaries']
print(f'{len(chunks)} scenes, resuming at {len(done)}, model {MODEL}', flush=True)
t0, gen_ns, pre_ns = time.time(), 0, 0
for i in range(len(done), len(chunks)):
text, g, p = ollama.chat(MODEL, SYSTEM, chunks[i]['text'])
gen_ns += g; pre_ns += p
done.append({'chunk': i, 'story': chunks[i]['story'],
'summary': first_sentence(text), 'model_output': text})
out.write_text(json.dumps(state, indent=1))
if (i + 1) % 10 == 0 or i + 1 == len(chunks):
el = time.time() - t0
print(f' {i + 1}/{len(chunks)} {el:.0f}s prefill {pre_ns / 1e9:.0f}s gen {gen_ns / 1e9:.0f}s', flush=True)
print(f'done: {len(done)} summaries, {time.time() - t0:.0f}s this session')
File diff suppressed because one or more lines are too long
@@ -0,0 +1,42 @@
{
"file": "summary_embeddings.json",
"chunks": 838,
"rows": [
{
"k": 25,
"sized": 25,
"median_dominant": 0.13636363636363635,
"recurring": 23,
"coverage": 0.9737470167064439,
"tight_recurring": 11,
"tight_coverage": 0.39737470167064437
},
{
"k": 40,
"sized": 36,
"median_dominant": 0.17444219066937122,
"recurring": 32,
"coverage": 0.9463007159904535,
"tight_recurring": 14,
"tight_coverage": 0.3568019093078759
},
{
"k": 60,
"sized": 51,
"median_dominant": 0.2222222222222222,
"recurring": 41,
"coverage": 0.8651551312649165,
"tight_recurring": 18,
"tight_coverage": 0.2613365155131265
},
{
"k": 100,
"sized": 70,
"median_dominant": 0.2792207792207792,
"recurring": 50,
"coverage": 0.7303102625298329,
"tight_recurring": 20,
"tight_coverage": 0.18973747016706444
}
]
}
+65
View File
@@ -0,0 +1,65 @@
"""How many clusters are BOTH situationally sharp and drawn from many stories?
Sharp = high mean cosine to centroid (a real situation, not prose register)
Spread = drawn from >= 4 different stories (recurring, not a single scene)
A pack needs ~15 per stage that are both.
"""
import json, math, pathlib, random
chunks = json.loads(pathlib.Path('chunks.json').read_text(encoding='utf-8'))
raw = json.loads(pathlib.Path('embeddings.json').read_text(encoding='utf-8'))
n = min(len(chunks), len(raw))
def norm(v):
m = math.sqrt(sum(x * x for x in v)) or 1.0
return [x / m for x in v]
V = [norm(v) for v in raw[:n]]
dim = len(V[0])
story = [chunks[i]['story'] for i in range(n)]
def dot(a, b):
s = 0.0
for x, y in zip(a, b): s += x * y
return s
def kmeans(K, seed=11, iters=12):
random.seed(seed)
cent = [V[i] for i in random.sample(range(n), K)]
assign = [-1] * n
for _ in range(iters):
moved = 0
for i, v in enumerate(V):
best, bs = 0, -2.0
for k, c in enumerate(cent):
s = dot(v, c)
if s > bs: bs, best = s, k
if assign[i] != best: assign[i] = best; moved += 1
if moved == 0: break
groups = {}
for i, k in enumerate(assign): groups.setdefault(k, []).append(i)
for k in range(K):
mem = groups.get(k)
if not mem: continue
cent[k] = norm([sum(V[i][d] for i in mem) / len(mem) for d in range(dim)])
groups = {}
for i, k in enumerate(assign): groups.setdefault(k, []).append(i)
out = []
for k, idx in groups.items():
coh = sum(dot(V[i], cent[k]) for i in idx) / len(idx)
out.append({'size': len(idx), 'stories': len({story[i] for i in idx}), 'coh': coh, 'idx': idx})
return out
print(f'{"k":>4} {"clusters":>9} {"sharp>=.83":>11} {"spread>=4":>10} {"BOTH":>6} {"median size":>12}')
print('-' * 60)
best = None
for K in (25, 40, 60, 80, 100):
cl = kmeans(K)
sharp = [c for c in cl if c['coh'] >= 0.83]
spread = [c for c in cl if c['stories'] >= 4]
both = [c for c in cl if c['coh'] >= 0.83 and c['stories'] >= 4]
sizes = sorted(c['size'] for c in cl)
print(f'{K:>4} {len(cl):>9} {len(sharp):>11} {len(spread):>10} {len(both):>6} {sizes[len(sizes)//2]:>12}')
if best is None or len(both) > len(best[1]): best = (K, both, cl)
pathlib.Path('best_k.json').write_text(json.dumps({'k': best[0],
'both': [{'size': c['size'], 'stories': c['stories'], 'coh': c['coh'], 'idx': c['idx']} for c in best[1]]}))
print(f'\nbest k = {best[0]} with {len(best[1])} clusters that are both sharp and recurring')
@@ -0,0 +1,22 @@
{
"rule": [
[
"S1",
">=",
0.61185
],
[
"S6",
"<=",
0.16025
]
],
"test": {
"accepted": 5,
"label2": 2,
"label1plus": 5,
"precision2": 0.4,
"precision1plus": 1.0,
"recall2": 0.4
}
}
+139
View File
@@ -0,0 +1,139 @@
"""Tests for the review form's checks and conversion.
python3 -m unittest test_review
"""
import copy, json, pathlib, subprocess, sys, tempfile, unittest
import review_format as rf
def candidate(cid, kind, stories):
"""A synthetic candidate whose n-th scene comes from stories[n]."""
return {'kind': kind, 'stats': {}, 'gate_failures': [], 'most_similar': {'id': None, 'cosine': 0.0},
'members': [{'member': rf.member_id(cid, n + 1), 'chunk': hash((cid, n)) % 100000, 'story': s,
'title': f'STORY {s}', 'summary': f'{cid} scene {n + 1}'} for n, s in enumerate(stories)]}
def fixture():
return {'schema_version': rf.SCHEMA_VERSION,
'run': {'id': 'k60-s99'},
'candidates': {'C01': candidate('C01', 'accepted', [1, 2, 3, 4, 5, 6, 7, 8]),
'C02': candidate('C02', 'accepted', [9, 10, 11, 12, 13, 14]),
'B01': candidate('B01', 'borderline', [1, 3, 5, 7, 9, 11, 13])}}
def filled(cands):
form = rf.blank_form(cands)
e = {x['id']: x for x in form['entries']}
e['C01'].update(decision='accept', situation='A lodger wants more time from a landlady who wants the rent.',
actor='a lodger', counterpart='a landlady', stakes='the room', exclude=['C01.02'])
e['C02'].update(decision='merge', merge_into='C01')
return form, e
class ReviewFormTests(unittest.TestCase):
def test_blank_form_requires_decisions_only_for_accepted(self):
cands = fixture()
errors, _, result = rf.validate(cands, rf.blank_form(cands))
self.assertIsNone(result)
self.assertTrue(any(err.startswith('C01: no decision') for err in errors))
self.assertTrue(any(err.startswith('C02: no decision') for err in errors))
self.assertFalse(any(err.startswith('B01') for err in errors))
def test_valid_form_merges_and_excludes(self):
cands = fixture()
form, _ = filled(cands)
errors, warnings, result = rf.validate(cands, form)
self.assertEqual(errors, [])
self.assertEqual(len(result['situations']), 1)
s = result['situations'][0]
self.assertEqual(s['from'], ['C01', 'C02'])
self.assertEqual(s['size'], 8 - 1 + 6)
self.assertNotIn('C01.02', [m['member'] for m in s['members']])
self.assertEqual(result['skipped'], ['B01'])
self.assertEqual(result['counts']['merged'], 1)
def test_accept_needs_situation_and_roles(self):
cands = fixture()
form, e = filled(cands)
e['C01']['actor'] = ' '
errors, _, result = rf.validate(cands, form)
self.assertIsNone(result)
self.assertIn('C01: accepted, so "actor" must be filled in.', errors)
def test_unknown_excluded_scene_is_named(self):
cands = fixture()
form, e = filled(cands)
e['C01']['exclude'] = ['C01.02', 'C02.01', 'C01.99']
errors, _, _ = rf.validate(cands, form)
self.assertTrue(any('C02.01, C01.99' in err and 'C01.01 to C01.08' in err for err in errors), errors)
def test_merge_target_must_be_accepted(self):
cands = fixture()
form, e = filled(cands)
e['C01']['decision'] = 'reject'
errors, _, _ = rf.validate(cands, form)
self.assertTrue(any(err.startswith('C02: merges into C01') for err in errors), errors)
def test_exclusions_that_leave_too_few_stories_are_refused(self):
cands = fixture()
form, e = filled(cands)
e['C02'].update(decision='accept', merge_into=None, situation='A clerk wants a raise.',
actor='a clerk', counterpart='an employer',
exclude=['C02.01', 'C02.02', 'C02.03'])
errors, _, result = rf.validate(cands, form)
self.assertIsNone(result)
self.assertTrue(any(err.startswith('C02: after exclusions 3 scenes remain from 3 stories') for err in errors), errors)
def test_borderline_cannot_be_rejected_explicitly(self):
cands = fixture()
form, e = filled(cands)
e['B01']['decision'] = 'reject'
errors, _, _ = rf.validate(cands, form)
self.assertTrue(any(err.startswith('B01: "decision" is \'reject\'') for err in errors), errors)
def test_form_from_another_run_is_refused(self):
cands = fixture()
form, _ = filled(cands)
form['run'] = 'k60-s24'
errors, _, _ = rf.validate(cands, form)
self.assertTrue(any('This form is for run' in err for err in errors))
def test_every_problem_is_reported_at_once(self):
cands = fixture()
form, e = filled(cands)
e['C01']['situation'] = ''
e['C02']['merge_into'] = 'C77'
errors, _, _ = rf.validate(cands, form)
self.assertEqual(len(errors), 2, errors)
def test_apply_review_writes_nothing_until_the_form_passes(self):
cands = fixture()
with tempfile.TemporaryDirectory() as tmp:
run = pathlib.Path(tmp)
(run / 'candidates.json').write_text(json.dumps(cands))
(run / 'review.json').write_text(json.dumps(rf.blank_form(cands)))
here = pathlib.Path(__file__).resolve().parent
bad = subprocess.run([sys.executable, 'apply_review.py', str(run)], cwd=here, capture_output=True, text=True)
self.assertEqual(bad.returncode, 1)
self.assertFalse((run / 'situations.json').exists())
form, _ = filled(cands)
(run / 'review.json').write_text(json.dumps(form))
good = subprocess.run([sys.executable, 'apply_review.py', str(run)], cwd=here, capture_output=True, text=True)
self.assertEqual(good.returncode, 0, good.stdout + good.stderr)
written = json.loads((run / 'situations.json').read_text())
self.assertEqual(written['situations'][0]['from'], ['C01', 'C02'])
def test_malformed_json_is_explained(self):
cands = fixture()
with tempfile.TemporaryDirectory() as tmp:
run = pathlib.Path(tmp)
(run / 'candidates.json').write_text(json.dumps(cands))
(run / 'review.json').write_text('{"entries": [ {"id": "C01",} ]}')
here = pathlib.Path(__file__).resolve().parent
r = subprocess.run([sys.executable, 'apply_review.py', str(run)], cwd=here, capture_output=True, text=True)
self.assertEqual(r.returncode, 1)
self.assertIn('is not valid JSON: line 1', r.stdout)
if __name__ == '__main__':
unittest.main()
+51
View File
@@ -0,0 +1,51 @@
tuning set: 102 clusters, 62 labelled >=1, 13 labelled 2
CHOSEN G2: {'S1': 0.6036626536817667, 'Z1': 5, 'MMIN': None, 'W': 0.6}
all accepted 102 label>=1 62 P1+ 0.61 label2 13
old gate accepted 31 label>=1 26 P1+ 0.84 label2 8
G2 accepted 40 label>=1 34 P1+ 0.85 label2 9
by size band:
<=12: 20 clusters, 7 labelled >=1
old gate accepted 0 P1+ 0.00
G2 accepted 1 P1+ 1.00
13-25: 52 clusters, 34 labelled >=1
old gate accepted 13 P1+ 0.92
G2 accepted 18 P1+ 0.89
>=26: 30 clusters, 21 labelled >=1
old gate accepted 18 P1+ 0.78
G2 accepted 21 P1+ 0.81
G2 rejects, labelled >=1, with the failing term:
D01 size 20 label 1 S1
D06 size 23 label 1 S1
D08 size 8 label 1 Z1
D11 size 36 label 1 S1
D14 size 18 label 1 S1 Z1
D15 size 24 label 2 S1
D20 size 10 label 1 S1 Z1
D22 size 34 label 1 S1
D23 size 11 label 1 Z1
D25 size 24 label 1 S1
D27 size 15 label 1 S1 Z1
D29 size 19 label 1 S1
D32 size 15 label 1 S1
D37 size 18 label 1 S1
T03 size 11 label 1 S1 Z1
T04 size 20 label 1 S1 Z1
T06 size 13 label 1 S1 Z1
T12 size 21 label 1 S1
T16 size 13 label 2 S1 Z1 W(social)
T17 size 30 label 2 S1
T19 size 13 label 1 S1 Z1
T20 size 12 label 1 S1 Z1
T27 size 18 label 1 S1 Z1
T30 size 13 label 2 Z1
T32 size 31 label 1 S1
T33 size 23 label 1 S1
T34 size 11 label 1 Z1
T37 size 22 label 1 S1 Z1
real 0m33.375s
user 0m33.095s
sys 0m0.262s
exit 0
+16
View File
@@ -0,0 +1,16 @@
tuning set: 175 clusters, 101 labelled >=1, 19 labelled 2
CHOSEN G3: {'S1': 0.6175176123715982, 'PCT': 0.9, 'MMIN': 0.5295953845017977, 'W': 0.6}
old gate accepted 47 label>=1 38 P1+ 0.81 label2 9
G2 accepted 67 label>=1 55 P1+ 0.82 label2 12
G3 accepted 47 label>=1 40 P1+ 0.85 label2 13
by size band (accepted / label>=1):
<=9 26 clusters (5 >=1) old gate 0/0 G2 0/0 G3 4/3
10-12 21 clusters (11 >=1) old gate 0/0 G2 4/4 G3 4/4
13-25 75 clusters (47 >=1) old gate 17/15 G2 26/22 G3 17/17
>=26 53 clusters (38 >=1) old gate 30/23 G2 37/29 G3 22/16
real 1m13.057s
user 1m10.863s
sys 0m1.865s
exit 0
+75
View File
@@ -0,0 +1,75 @@
"""Choose G2's thresholds on every labelled cluster so far (SELECTION.md, "A size-invariant gate").
python3 tune_gate2.py # writes gate2-tuning.json and gate2-frozen.json
"""
import itertools, json, pathlib
import gate2 as g
# Guard: G2's S1 and old S6 must reproduce the first gate's signals.
dev_sig = json.loads(pathlib.Path('signals-dev.json').read_text())
dev_cand = json.loads(pathlib.Path('candidates-dev.json').read_text())
for cid, m in dev_cand.items():
s = g.signals(m)
assert abs(s['S1'] - dev_sig[cid]['S1']) < 1e-3 and abs(s['S6_old'] - dev_sig[cid]['S6']) < 1e-3, cid
rows = []
for name in ('dev', 'test'):
cand = json.loads(pathlib.Path(f'candidates-{name}.json').read_text())
lab = json.loads(pathlib.Path(f'labels-{name}.json').read_text())
for cid, m in cand.items():
rows.append(dict(g.signals(m), id=cid, label=lab[cid]['label']))
rmap = json.loads(pathlib.Path('recover-map.json').read_text())
rlab = json.loads(pathlib.Path('labels-recover.json').read_text())
for rid, e in rmap.items():
rows.append(dict(g.signals(e['members']), id=rid, label=rlab[rid]['label']))
pathlib.Path('gate2-tuning.json').write_text(json.dumps(rows, indent=1))
def deciles(key):
v = sorted(r[key] for r in rows)
return [None] + [v[int(len(v) * q / 10)] for q in range(1, 10)]
grid = itertools.product(deciles('S1'), [None, 1, 2, 3, 4, 5], deciles('MMIN'),
[None, 0.25, 0.30, 0.35, 0.40, 0.50, 0.60])
best = None
for s1, z1, mmin, w in grid:
gate = {'S1': s1, 'Z1': z1, 'MMIN': mmin, 'W': w}
acc = [r for r in rows if g.g2_passes(r, gate)]
if not acc: continue
n1 = sum(r['label'] >= 1 for r in acc)
if n1 / len(acc) < 0.85: continue
key = (n1, sum(r['label'] == 2 for r in acc), -sum(v is not None for v in gate.values()))
if best is None or key > best[0]:
best = (key, gate)
gate = best[1]
pathlib.Path('gate2-frozen.json').write_text(json.dumps(gate, indent=1))
def band(size):
return '<=12' if size <= 12 else ('13-25' if size <= 25 else '>=26')
def report(label, accept):
acc = [r for r in rows if accept(r)]
n1 = sum(r['label'] >= 1 for r in acc)
n2 = sum(r['label'] == 2 for r in acc)
return f'{label:14} accepted {len(acc):3} label>=1 {n1:3} P1+ {n1 / len(acc) if acc else 0:.2f} label2 {n2}'
print(f'tuning set: {len(rows)} clusters, {sum(r["label"] >= 1 for r in rows)} labelled >=1, '
f'{sum(r["label"] == 2 for r in rows)} labelled 2')
print('CHOSEN G2:', gate)
print(report('all', lambda r: True))
print(report('old gate', g.old_passes))
print(report('G2', lambda r: g.g2_passes(r, gate)))
print('\nby size band:')
for b in ('<=12', '13-25', '>=26'):
sub = [r for r in rows if band(r['size']) == b]
print(f' {b}: {len(sub)} clusters, {sum(r["label"] >= 1 for r in sub)} labelled >=1')
for label, accept in (('old gate', g.old_passes), ('G2', lambda r: g.g2_passes(r, gate))):
acc = [r for r in sub if accept(r)]
n1 = sum(r['label'] >= 1 for r in acc)
print(f' {label:9} accepted {len(acc):3} P1+ {n1 / len(acc) if acc else 0:.2f}')
print('\nG2 rejects, labelled >=1, with the failing term:')
for r in rows:
if r['label'] >= 1 and not g.g2_passes(r, gate):
why = [k for k in ('S1', 'Z1', 'MMIN') if gate[k] is not None and r[k] < gate[k]]
if gate['W'] is not None and r['W'] >= gate['W']: why.append(f"W({r['W_word']})")
print(f" {r['id']} size {r['size']:2} label {r['label']} {' '.join(why) or 'candidate conditions'}")
+59
View File
@@ -0,0 +1,59 @@
"""Choose G3's thresholds on all 175 labelled clusters (SELECTION.md, "G3").
python3 tune_gate3.py # writes gate3-tuning.json and gate3-frozen.json
"""
import itertools, json, pathlib
import gate2 as g
import gate3 as g3
G2 = json.loads(pathlib.Path('gate2-frozen.json').read_text())
rows = []
for name in ('dev', 'test'):
cand = json.loads(pathlib.Path(f'candidates-{name}.json').read_text())
lab = json.loads(pathlib.Path(f'labels-{name}.json').read_text())
rows += [dict(g3.signals(m), id=c, label=lab[c]['label']) for c, m in cand.items()]
for mapfile, labfile in (('recover-map.json', 'labels-recover.json'), ('validate-map.json', 'labels-validate.json')):
mp = json.loads(pathlib.Path(mapfile).read_text())
lab = json.loads(pathlib.Path(labfile).read_text())
rows += [dict(g3.signals(e['members']), id=c, label=lab[c]['label']) for c, e in mp.items()]
pathlib.Path('gate3-tuning.json').write_text(json.dumps(rows, indent=1))
def deciles(key):
v = sorted(r[key] for r in rows)
return [v[int(len(v) * q / 10)] for q in range(1, 10)]
best = None
for s1, pct, mmin, w in itertools.product(deciles('S1'), [0.90, 0.95, 0.975, 0.99, 0.999],
deciles('MMIN'), [None, 0.30, 0.40, 0.50, 0.60]):
gate = {'S1': s1, 'PCT': pct, 'MMIN': mmin, 'W': w}
acc = [r for r in rows if g3.passes(r, gate)]
if not acc: continue
n1 = sum(r['label'] >= 1 for r in acc)
if n1 / len(acc) < 0.85: continue
key = (n1, sum(r['label'] == 2 for r in acc), -(3 + (w is not None)))
if best is None or key > best[0]:
best = (key, gate)
gate = best[1]
pathlib.Path('gate3-frozen.json').write_text(json.dumps(gate, indent=1))
def band(size):
return '<=9' if size <= 9 else '10-12' if size <= 12 else '13-25' if size <= 25 else '>=26'
rules = (('old gate', g.old_passes), ('G2', lambda r: g.g2_passes(r, G2)), ('G3', lambda r: g3.passes(r, gate)))
print(f'tuning set: {len(rows)} clusters, {sum(r["label"] >= 1 for r in rows)} labelled >=1, '
f'{sum(r["label"] == 2 for r in rows)} labelled 2')
print('CHOSEN G3:', gate)
for name, accept in rules:
acc = [r for r in rows if accept(r)]
n1 = sum(r['label'] >= 1 for r in acc)
print(f' {name:9} accepted {len(acc):3} label>=1 {n1:3} P1+ {n1 / len(acc) if acc else 0:.2f} '
f'label2 {sum(r["label"] == 2 for r in acc)}')
print('\nby size band (accepted / label>=1):')
for b in ('<=9', '10-12', '13-25', '>=26'):
sub = [r for r in rows if band(r['size']) == b]
cells = []
for name, accept in rules:
acc = [r for r in sub if accept(r)]
cells.append(f'{name} {len(acc)}/{sum(r["label"] >= 1 for r in acc)}')
print(f' {b:6} {len(sub):3} clusters ({sum(r["label"] >= 1 for r in sub)} >=1) ' + ' '.join(cells))
@@ -0,0 +1,8 @@
V1: k=100 seed=15: 59 candidates, sampled 30
V2: k=40 seed=14: 32 candidates, sampled 30
V3: k=60 seed=16: 46 candidates, G2 accepts 13; growth stopped by gate 2, by cap 11
blind sheet: 73 clusters, 1600 lines
real 0m39.098s
user 0m37.786s
sys 0m1.160s
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,25 @@
{
"criteria": [
false,
true,
false
],
"V1": [
10,
8,
2,
0.8
],
"V2": [
4,
3,
0,
0.75
],
"V3": [
13,
2,
10,
0.7692307692307693
]
}
@@ -0,0 +1,87 @@
V1: 30 sampled, 13 labelled >=1 (base rate 0.43)
old gate accepted 3 label>=1 2 label2 0 P1+ 0.67
G2 accepted 10 label>=1 8 label2 2 P1+ 0.80
V2: 30 sampled, 16 labelled >=1 (base rate 0.53)
old gate accepted 1 label>=1 1 label2 0 P1+ 1.00
G2 accepted 4 label>=1 3 label2 0 P1+ 0.75
V3: 13 grown clusters, stopped by gate 2, by cap 11, label>=1 10, P1+ 0.77
criterion 1 (P1+ >= 0.80 and >= 3 accepted on V1 and V2): fail
criterion 2 (G2 accepts more small clusters than old gate on V1): PASS
criterion 3 (V3 mostly gate-stopped, P1+ >= 0.80): fail
OVERALL: fail
per cluster:
X001 V3 size 45 label 1 old Y G2 Y stop cap schemes, cons and theft over money
X002 V1 size 10 label 1 old - G2 Y stop - struggling artists and money
X003 V2 size 39 label 0 old - G2 Y stop -
X004 V1 size 29 label 1 old - G2 Y stop - schemes, cons and theft over money
X005 V1 size 17 label 1 old Y G2 Y stop - who holds sway in a dining room or hotel
X006 V2 size 15 label 1 old - G2 - stop - a meal given as patronage
X007 V2 size 9 label 0 old - G2 - stop -
X008 V1 size 11 label 2 old - G2 Y stop - a reunion or first meeting
X009 V3 size 45 label 1 old Y G2 Y stop cap a proposal or engagement, accepted or refused
X010 V1 size 11 label 0 old - G2 - stop -
X011 V2 size 43 label 1 old - G2 - stop - drinking in the saloon
X012 V2 size 10 label 0 old - G2 - stop -
X013 V1 size 7 label 1 old - G2 - stop - what to do with money, and whose advice to take
X014 V2 size 10 label 0 old - G2 - stop -
X015 V2 size 38 label 0 old - G2 - stop -
X016 V1 size 18 label 1 old - G2 Y stop - who holds sway in a dining room or hotel
X017 V1 size 9 label 0 old - G2 - stop -
X018 V1 size 7 label 1 old - G2 - stop - shop and service work and standing
X019 V3 size 45 label 1 old Y G2 Y stop cap a public quarrel with a shopkeeper, driver or official
X020 V2 size 24 label 0 old - G2 - stop -
X021 V1 size 21 label 1 old Y G2 Y stop - courtship
X022 V2 size 35 label 1 old - G2 - stop - working girls: jobs, wages and standing
X023 V3 size 45 label 1 old Y G2 Y stop cap who holds sway in a dining room or hotel
X024 V1 size 7 label 0 old - G2 - stop -
X025 V2 size 19 label 0 old - G2 - stop -
X026 V1 size 6 label 0 old - G2 - stop -
X027 V1 size 7 label 0 old - G2 - stop -
X028 V1 size 6 label 0 old - G2 - stop -
X029 V1 size 5 label 0 old - G2 - stop -
X030 V2 size 18 label 1 old - G2 - stop - a brawl or showdown
X031 V1 size 12 label 1 old - G2 - stop - actresses and the stage
X032 V1 size 11 label 0 old - G2 - stop -
X033 V3 size 45 label 0 old Y G2 Y stop cap
X034 V3 size 36 label 1 old - G2 Y stop gate struggling artists and money
X035 V3 size 45 label 0 old Y G2 Y stop cap
X036 V2 size 47 label 1 old - G2 - stop - illness, loss and a missing relative
X037 V1 size 5 label 0 old - G2 - stop -
X038 V1 size 8 label 0 old - G2 - stop -
X039 V2 size 11 label 1 old - G2 - stop - working girls: jobs, wages and standing
X040 V1 size 21 label 0 old - G2 Y stop -
X041 V1 size 17 label 1 old - G2 Y stop - money and marriage: wealthy suitors, inheritances
X042 V1 size 5 label 2 old - G2 - stop - a public quarrel with a shopkeeper, driver or official
X043 V2 size 38 label 1 old - G2 - stop - who holds sway in a dining room or hotel
X044 V2 size 18 label 2 old - G2 - stop - landlord or housekeeper against tenant: rooms and eviction
X045 V2 size 25 label 1 old - G2 - stop - struggling artists and money
X046 V2 size 6 label 0 old - G2 - stop -
X047 V2 size 17 label 1 old - G2 - stop - family pressures over work and marriage
X048 V2 size 20 label 1 old - G2 - stop - money owed and repayment
X049 V2 size 25 label 0 old - G2 - stop -
X050 V3 size 45 label 1 old Y G2 Y stop cap schemes, cons and theft over money
X051 V1 size 17 label 2 old - G2 Y stop - a spouse schemes against or confronts a spouse over infidelity
X052 V2 size 27 label 1 old - G2 Y stop - schemes, cons and theft over money
X053 V2 size 16 label 0 old - G2 - stop -
X054 V1 size 5 label 0 old - G2 - stop -
X055 V3 size 21 label 2 old Y G2 Y stop gate a spouse schemes against or confronts a spouse over infidelity
X056 V3 size 45 label 1 old Y G2 Y stop cap trying to impress or win someone's favour
X057 V3 size 45 label 1 old Y G2 Y stop cap schemes, cons and theft over money
X058 V1 size 16 label 0 old - G2 - stop -
X059 V2 size 19 label 1 old - G2 - stop - a proposal or engagement, accepted or refused
X060 V1 size 18 label 0 old - G2 Y stop -
X061 V2 size 41 label 0 old - G2 - stop -
X062 V2 size 10 label 0 old - G2 - stop -
X063 V1 size 6 label 0 old - G2 - stop -
X064 V3 size 45 label 1 old Y G2 Y stop cap a spouse schemes against or confronts a spouse over infidelity
X065 V2 size 40 label 1 old - G2 - stop - a heated disagreement over whose view is right
X066 V1 size 10 label 0 old - G2 - stop -
X067 V2 size 23 label 0 old - G2 - stop -
X068 V1 size 6 label 2 old - G2 - stop - a spouse schemes against or confronts a spouse over infidelity
X069 V2 size 12 label 1 old - G2 Y stop - trying to impress or win someone's favour
X070 V2 size 32 label 1 old Y G2 Y stop - a spouse schemes against or confronts a spouse over infidelity
X071 V1 size 16 label 0 old Y G2 - stop -
X072 V2 size 17 label 0 old - G2 - stop -
X073 V3 size 45 label 0 old Y G2 Y stop cap
@@ -0,0 +1,9 @@
V0: k=150 seed=20: 59 candidates, sampled 25
V1: k=100 seed=17: 58 candidates, sampled 20
V2: k=40 seed=18: 34 candidates, sampled 20
V3: k=60 seed=19: 45 candidates, G3 accepts 10; growth stopped by gate 3, by cap 7
blind sheet: 75 clusters, 1265 lines
real 1m8.707s
user 0m53.236s
sys 0m14.723s
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,50 @@
{
"criteria": [
false,
false,
false,
false
],
"V1": [
4,
2,
0,
0.5
],
"V2": [
2,
2,
1,
1.0
],
"small_G3": [
11,
3,
0,
0.2727272727272727
],
"small_G2": [
3,
1,
0,
0.3333333333333333
],
"V3": [
10,
3,
6,
0.6
],
"pooled_G3": [
17,
8,
1,
0.47058823529411764
],
"pooled_G2": [
13,
9,
2,
0.6923076923076923
]
}

Some files were not shown because too many files have changed in this diff Show More