Spaces:
Running
Running
| """Closed-class English lexicon shared by query routing and training. | |
| Dependency-free ON PURPOSE: the query path imports this (via | |
| rerank.directional_swap), and it previously reached the same tables | |
| through fdnnv2, whose module level imports mlx. That worked on a Mac | |
| and crashed every Linux deployment. Lexicon is language knowledge, not | |
| model code; it lives where nothing heavier than a list comprehension | |
| runs. | |
| Verb/direction swaps: GENERIC english antonyms, no dataset nouns, per | |
| the no-hardwire rule. | |
| """ | |
| from __future__ import annotations | |
| # --------------------------------------------------------------------- | |
| # DERIVED OPPOSITES. The 81 pairs below and the 16 `un-` bases were | |
| # hand-authored, and fold/stack/cover are conspicuously this corpus's | |
| # vocabulary - a task prior in a file that claims to hold generic | |
| # English. The swap-contrast MECHANISM is sound and measured; the list | |
| # was not derived. | |
| # | |
| # derived_swaps() replaces it: opposites are found by reflection in an | |
| # embedding space over the vocabulary the CORPUS attested. On a driving | |
| # log that finds accelerate/brake without anyone having thought of them; | |
| # here it finds open/close. The hand list stays only as a cold-start | |
| # fallback for an empty store, and is labelled as such rather than | |
| # presented as knowledge. | |
| # --------------------------------------------------------------------- | |
| def derived_swaps(store, vec=None, min_count=2): | |
| """Opposite pairs this corpus supports, or () if it cannot say.""" | |
| from .derive import attested, opposite_pairs | |
| try: | |
| if "labels" not in store.tables(): | |
| return () | |
| vals = store.table("labels").scan().column("value").to_pylist() | |
| vocab = attested(vals, min_count=min_count) | |
| if len(vocab) < 8: | |
| return () | |
| if vec is None: | |
| from .sig2 import _text_vec as vec | |
| return tuple((a, b) for a, b, _ in opposite_pairs(vocab, vec)) | |
| except Exception: | |
| return () | |
| # THERE IS NO VERB TABLE. VERB_SWAPS (17 hand-authored pairs) and | |
| # _UN_BASES (16 hand-authored stems that generated ~64 more) lived here | |
| # as a "cold-start fallback", labelled a violation by their own comment | |
| # and kept anyway. A fallback that always fires is not a fallback: on | |
| # every store measured, derived_swaps returned 0 pairs, so the hand list | |
| # WAS the direction mechanism, and it was also feeding the student's | |
| # training negatives. | |
| # | |
| # Removed. derived_swaps() above is the only source of oppositions: what | |
| # THIS corpus attests, scored in its own embedding space. A corpus that | |
| # cannot express an opposition now yields None, and callers must handle | |
| # that honestly rather than borrow English from a list. A forklift | |
| # corpus gets forklift oppositions or it gets nothing - which is the | |
| # rule, and the point. | |