Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WordFor: A reverse dictionary that runs entirely in your browser

build-desktop

wordfor

A free, private reverse dictionary using sentence embeddings, 1-bit quantization, and static model inference - zero server-side compute.

Blog post | Try it

Architecture

  • Full mode (desktop): Asymmetric retrieval: definitions encoded offline by mxbai-embed-large-v1 (1024d, MRL-truncated to 384d), queries encoded at runtime by mdbr-leaf-mt (22M params) via Transformers.js. Two-stage scoring: 1-bit binary ITQ Hamming first-pass (~13ms) + int3 reranking of top-500 candidates.
  • Full mode (mobile): Same model, pure 1-bit binary ITQ scoring only. ~30 MB total download.
  • Lite mode: Knowledge-distilled static embeddings (256d, fine-tuned from mxbai-embed-large via Model2Vec). Sub-1ms queries via WASM or pure JS. Automatic fallback when ONNX model can't load (e.g. iOS).

Evaluation (67-query test set)

Mode Config MRR Hit@1 Hit@6
Full binary + int3 rerank (desktop) 0.644 37/67 52/67
Full pure binary ITQ (mobile) 0.563 30/67 52/67
Lite distilled-mxbai fine-tuned, int4 0.566 33/67 42/67

Dictionary

370,000+ visible definitions (576,000 total entries incl. hidden embedding-only) from six public-domain / open sources: Open English WordNet 2025 (CC BY 4.0), Webster's 1913, GCIDE Webster portion, Century Dictionary (1889-1911), Chambers's Twentieth Century Dictionary (1908), and curated LLM-augmented entries (CC0). Enriched with Moby Thesaurus synonyms. Wiktionary (CC BY-SA 3.0) and ConceptNet 5.7 (CC BY-SA 4.0) used at build time for quality signals and embedding enrichment only; not redistributed.

Clean core vs build-time signals vs optional packs

WordFor keeps three license lanes strictly separated (full table: LICENSE_SOURCES.md):

  • Clean core — only public-domain / CC0 / CC BY definition text ships in data/words.json (with attribution on about.html).
  • Build-time signals — share-alike / copyleft / proprietary sources (Wiktionary, ConceptNet, full GCIDE, Open Roget's, …) shape quality scores and hidden embeddings but are never shipped verbatim.
  • Optional share-alike / GPL packs — anything copyleft could only ever be shipped as a separate, correctly-licensed artifact, not merged into core.

The build fails (build/audit_sources.py, build/audit_modern_sources.py) if any non-redistributable source leaks visible text, and build/verify_sources.py records a SHA-256 provenance snapshot of every ingested source. Search-time word-family grouping (run/ran/running → run) comes from build-time, license-audited lemma maps (build/build_lemma_families.py), not runtime guessing; negative prefixes are never collapsed (unhappy ≠ happy).

Privacy

Static files served from GitHub Pages through Cloudflare CDN. GoatCounter for cookie-free analytics. No personal data collected.


© 2025 Zeeshan Khan Suri. Licensed under CC-BY-NC-ND-4.0.

About

Describe a concept and instantly find the perfect word. A free reverse dictionary powered by AI that runs entirely in your browser — no sign-up, no tracking.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Sponsor this project

Contributors

Languages