Commit Graph

10 Commits

Author SHA1 Message Date
developer c901fee994 Merge pull request 'Drop substantivized-adjective false nouns via manual_reject.txt' (#4) from feature/manual-reject-list into master
build / dawg (push) Successful in 8m1s
v1.2.0
2026-06-20 15:14:01 +00:00
Ilia Denisov e17e945b41 Drop substantivized-adjective false nouns via manual_reject.txt
build / dawg (pull_request) Successful in 1m33s
OpenCorpora/libmorph hand a noun reading to Stage 2 above the РАН note, so
substantivized-adjective false nouns a dictionary misreads (нёбный, акцизный,
велярный, …) reached scrabble.txt with no veto path — the earlier abbreviation
filter only carved out Abbr+Fixd.

ru_stage2.py now subtracts sources/scrabble_ru/manual_reject.txt last, after
every admission path (OC seed / libmorph / note / manual_confirm / variant),
mirroring manual_confirm.txt. The list seeds 62 hand-reviewed words — 43 pure
adjectives plus 19 marginal (slang/archaic/jargon) substantivizations; genuine
substantivized nouns (больной, знакомый, учёный, участковый, …) stay.

scrabble.txt -62 (83206->83144); erudit.txt re-folded -62. The DAWGs are
gitignored and rebuild from these lists in CI.
2026-06-20 17:09:02 +02:00
developer b5600771a6 Merge pull request 'Restore lost Russian dict sources & drop OpenCorpora abbreviations' (#3) from feature/restore-russian-sources into master
build / dawg (push) Successful in 2m17s
v1.1.0
2026-06-13 11:51:29 +00:00
Ilia Denisov 6b8b176f82 Filter OpenCorpora abbreviations & proper nouns from the Russian noun list
build / dawg (pull_request) Successful in 2m45s
OpenCorpora tags indeclinable abbreviations as common nouns (Abbr+Fixd), and
Stage 2 seeded the result with its whole noun lexicon, so non-words leaked into
scrabble.txt: ндс, ст, ср, кпд, чп, гибдд, днк, …

ru_stage2.py now drops Abbr+Fixd nouns from the OpenCorpora seed and lets the
orthographic dictionary decide instead: a lowercase РАН headword whose note is a
noun is kept (the lexicalised сельпо, под, ска, роно, врио, тв, фио, суперэвм),
everything else is dropped. Function words (CONJ/PRCL, e.g. зато) and OpenCorpora
inflected forms (ан = род. мн. от «ана»; proper «Ан») are excluded too.

--trace WORD now prints a detailed per-signal audit (all.txt, OpenCorpora POS /
Abbr / Fixd / CONJ/PRCL, libmorph, РАН note + classify, outcome) for auditing a
word or repeating the analysis; tools/README.md documents the rule and method.

Net: 179 words removed from scrabble.txt (83385 -> 83206) and erudit.txt
(83343 -> 83164); verified to remove exactly those 179 and add none. DAWGs
rebuild clean.
2026-06-13 13:33:26 +02:00
Ilia Denisov 5b7a741ec2 Restore lost Russian dictionary sources from scrabble-solver history
The dict pipeline was moved out of scrabble-solver (256999b) into this repo,
but the initial import (d04470b) dropped three primary sources, and the
"Tidy sources" reorg (dd61ff1) git-ignored them while tools/README.md still
documented them as the committed source of truth — so the word-provenance
analysis could no longer run.

Recover them byte-identically from scrabble-solver's history (reachable from
its v1.0.0 tag):

- tools/orfo_dict_2025.pdf                 primary source (RAS orthographic dictionary PDF)
- sources/scrabble_ru/orfo_dict_2025.txt   pdftotext output, pipeline source of truth
- sources/scrabble_ru/all.txt              Stage-1 base, input to Stage 2

Stop ignoring them in .gitignore and fix the contradictory note in
sources/scrabble_ru/README.md (only the debug dumps are regenerated locally).
2026-06-13 11:59:43 +02:00
developer 2ae29abe17 Merge pull request 'Tidy dictionary sources into sources/<variant>/ + tools/' (#2) from feature/tidy-sources into master
build / dawg (push) Successful in 3m14s
v1.0.1
2026-06-09 13:48:04 +00:00
Ilia Denisov dd61ff1d51 Tidy sources into sources/<variant>/ + tools/
build / dawg (pull_request) Successful in 4m22s
Consolidate the scattered build inputs (dictionaries/english/, dictprep/russian/)
into one sources/ tree keyed by the variant labels (scrabble_en/scrabble_ru/
erudit_ru), and move the Russian prep pipeline to tools/. The dawg outputs and
their filenames are unchanged — rebuilt byte-identical (en_sowpods/ru_scrabble/
ru_erudit) — so the release artifact and the backend are unaffected.

ru_stage2.py OUT_DIR and the ruwords flag defaults are repointed to
sources/scrabble_ru/; Makefile / CI / cmd/builddict default / README updated;
pipeline intermediates git-ignored. Verified: make dawg byte-identical to the
committed baseline, py_compile + go vet of the moved tools. The full Russian
regeneration pipeline (pymorphy3/libmorph/orfo PDF) was not run here.
2026-06-09 12:25:33 +02:00
developer 38ad6d3a19 Merge pull request 'CI: build-only validation; drop make/python/github-context deps' (#1) from feature/initial-producer into master
build / dawg (push) Successful in 4m53s
v1.0.0
2026-06-05 06:10:05 +00:00
Ilia Denisov 1d34753611 CI: build-only validation (no make/python/contexts); commit folded erudit.txt
build / dawg (pull_request) Successful in 1m11s
- build.yaml dropped the release step whose ${{ github.* }} contexts failed the Gitea
  workflow compile (the run produced 0 jobs); it now inlines go run (no make dependency)
  and reads the committed dictprep/russian/erudit.txt (no python dependency).
- erudit.txt is scrabble.txt with Ё→Е folded (dictprep/fold_yo.py); it reproduces the
  canonical ru_erudit.dawg byte-for-byte. Release artifacts are published manually for now
  (see README).
2026-06-04 19:43:44 +02:00
Ilia Denisov d04470b741 Initial dictionary producer: builddict, word-list sources, DAWG build + CI
build / dawg (push) Failing after 2s
- builddict drives the de-internalized scrabble-solver dictdawg/wordlist builders
  (pinned v1.0.0) to produce the three DAWGs (en_sowpods, ru_scrabble, ru_erudit),
  byte-identical to the solver's committed fixtures (same dafsa/alphabet v1.1.0 -> no
  index drift with the running backend).
- Sources: english/sowpods.txt vendored from kamilmielnik/scrabble-dictionaries;
  russian/scrabble.txt + the dictprep tooling moved out of scrabble-solver.
- CI builds the DAWGs on push/PR and, on a vX.Y.Z tag, packages them flat into
  scrabble-dawg-<tag>.tar.gz and attaches it to the Gitea release.
2026-06-04 19:18:19 +02:00