| … | … | @@ -1,3 +1,4 @@ |
| 1 | 1 | l2 |
| 2 | 2 | results-jt/*/*.bin |
| 3 | 3 | results-LV/*/work/ |
| 4 | results-LVC/*/work/ |
| … | … | @@ -0,0 +1,21 @@ |
| 1 | # Linas's clusterer run to convergence — Test LV-C. Pre-registration | |
| 2 | ||
| 3 | 2026-10-18. Written and committed **before any run beyond a timing check** (seed 1, 3K, all words ranked, loop cap | |
| 4 | 2000: 50 s, 257 merges, ended by the MI cutoff; no classes inspected). Follows #18: at Linas's demo call | |
| 5 | (200 words, 100 loops) the clusterer covered about half the tokens and the run hit the loop limit, which tests the | |
| 6 | setting, not the method. | |
| 7 | ||
| 8 | ## Method | |
| 9 | ||
| 10 | Exactly PREREG-LV (Sections from the word MST, token-label rule, measures, references, 10 seeds, tiers 3K/10K/30K, | |
| 11 | arms LV-I intended and LV-A as-run), except `cluster --nrank 2000 --loops 2000`: every word is ranked | |
| 12 | (V ≈ 1,600 < 2,000) and the run ends when no pair is above Linas's MI cutoff (4.0) or at 2,000 merges. | |
| 13 | ||
| 14 | ## Predictions (at 30K; paired over 10 seeds; "beats" = 95% CI of the paired difference excludes 0) | |
| 15 | ||
| 16 | - **C1 (coverage):** LV-I gives a class to ≥ 80% of held-out tokens (mean). | |
| 17 | - **C2 (senses):** LV-I beats LV-I-COLL on sense accuracy. | |
| 18 | - **C3 (a better layer than at the demo setting):** LV-I's re-parse link F1 beats Test LV's LV-I (same seeds). | |
| 19 | - **C4 (as good as exchange):** LV-I's re-parse link F1 − L-MST has 95% CI lower bound > −0.02. | |
| 20 | ||
| 21 | Reported, no prediction: LV-A, number of merges, whether runs end by the cutoff or the cap. |
| … | … | @@ -0,0 +1,29 @@ |
| 1 | #!/bin/sh | |
| 2 | # PREREG-LVC full run (to convergence): per seed, word-MST Sections -> Linas's clusterer (port; intended and as-run) -> token labels | |
| 3 | # -> re-parse and level 2. 10 seeds in parallel, tiers 3K,10K,30K. | |
| 4 | set -e | |
| 5 | cd "$(dirname "$0")" | |
| 6 | gcc -O2 -Wall -o l2 l2.c -lm 2>/dev/null | |
| 7 | gcc -O2 -Wall -o ../ladder/port/cluster ../ladder/port/cluster.c -lm 2>/dev/null | |
| 8 | out=results-LVC/$(date +%s) | |
| 9 | mkdir -p "$out/work" | |
| 10 | git rev-parse HEAD > "$out/commit.txt" | |
| 11 | sha256sum l2.c lv.py ../ladder/port/cluster.c ../across-cluster/ac.c > "$out/src.sha256" | |
| 12 | for s in 1 2 3 4 5 6 7 8 9 10; do | |
| 13 | ( | |
| 14 | w="$out/work/s$s" | |
| 15 | ./l2 $s --sections "$w" > /dev/null | |
| 16 | for t in 3000 10000 30000; do | |
| 17 | python3 lv.py agg "$w-$t-tr.tsv" "$w-$t-agg.tsv" | |
| 18 | for arm in I A; do | |
| 19 | fl=""; [ $arm = I ] && fl="--intended" | |
| 20 | ../ladder/port/cluster "$w-$t-agg.tsv" --nrank 2000 --loops 2000 $fl --dump "$w-$arm-$t-state.tsv" > "$w-$arm-$t.log" | |
| 21 | python3 lv.py label "$w-$t-tr.tsv" "$w-$t-ho.tsv" "$w-$arm-$t-state.tsv" "$w-lab$arm-$t" | sed "s/^Q/Q\t$s\t$t\tLV-$arm/" >> "$out/seed-$s.tsv" | |
| 22 | printf 'N\t%s\t%s\tLV-%s\t%s\n' $s $t $arm "$(grep -c 'Merged into' "$w-$arm-$t.log")" >> "$out/seed-$s.tsv" | |
| 23 | done | |
| 24 | done | |
| 25 | for arm in I A; do ./l2 $s --labels "$w-lab$arm" --labels-name LV-$arm >> "$out/seed-$s.tsv"; done | |
| 26 | ) & | |
| 27 | done | |
| 28 | wait | |
| 29 | echo "$out" |