feat(dict): derive the corpus from undertheseanlp's wiktionary rows

Replace the 179 MB minhqnd SQLite aggregate with the 4.8 MB
undertheseanlp/dictionary JSONL, pinned by commit and SHA-256, reading
only rows tagged "wiktionary". The two other wordlists in that file are
never read: hongocduc is GPL and would force a relicense, tudientv is an
unlicensed derivative of a commercial dictionary.

build-dictionary gains --merged and --sources (names validated, default
wiktionary), a shared finish() tail, and meta rows for the source commit
and the sources kept and excluded. The SQLite --in path, its schema
auto-detection and their tests are removed. Fixture builds now record
that they carry no upstream data instead of inheriting a licence string.
The --min-words floor moves from 40,000 to 20,000; the corpus is 26,845
words, down from 48,216, all of the loss being words absent from the
2018 Wiktionary scrape. Capitalization is not a filter.

The data licence follows the source text: CC BY-SA 3.0 Unported, which
is what vi.wiktionary.org carried in 2018. LICENSE, NOTICE, ATTRIBUTION,
the README, the image docs, the builder's meta string and the in-game
footer all name Wiktionary tiếng Việt's contributors as the authors and
undertheseanlp as the intermediary. The Makefile/Dockerfile pin test now
also checks the commit the builder stamps into the database.
This commit is contained in:
tiennm99 committed 2026-09-08 16:37:34 +07:00
1 parent 341d4fd2e0
commit 39ef45730f
25 files changed
+927 -910

No files matched your search

+1 -1
View File
@@ -1,7 +1,7 @@
# Fixture wordlist for tests, end-to-end runs and CI.
#
# Hand-written common Vietnamese compounds, not an extract of the upstream
# dictionary: CI must never download the 179 MB release, and a fixture derived
# dictionary: CI must never download the upstream wordlist, and a fixture derived
# from it would carry that release's licence into every test artifact.
#
# `make fixture-dict` turns this into a real derived database through the same