WangNet – 1.8 MB, zero-dependency Numberwang adjudication in 11 languages Developer GraafHenk released WangNet, a 1.8 MB JSON neural network with roughly 100 lines of pure Python standard-library inference code that adjudicates whether a number is Numberwang across 11 languages, requiring only Python 3.8 or newer. The 80,804-parameter character-level model scores 88.9% over 486 held-out adjudications (macro-F1 0.896) against a ceiling of roughly 98%, with arithmetic on unseen operands its weak spot at 44–72%. The project is MIT-licensed and also runs as a hosted demo on Hugging Face Spaces. A small neural network that decides whether a number is Numberwang. The whole model is a 1.8 MB JSON file and the inference code is about 100 lines of pure Python standard library — no PyTorch, no NumPy, nothing to install. Clone it and run it. bash $ python3 numberwang.py 22 22... THAT'S NUMBERWANG confidence: 99.3% $ python3 numberwang.py "45 - 44" 45 - 44... That's Wangernumb Rotate the board confidence: 100.0% $ python3 numberwang.py "hello how are you" hello how are you... That's not even a number. It can never be Numberwang. confidence: 100.0% git clone https://github.com/GraafHenk/numberwang cd numberwang python3 numberwang.py 22 Run it with no arguments for an interactive session: bash $ python3 numberwang.py Welcome to Numberwang ctrl-c to stop playing Numberwang zweiundzwanzig zweiundzwanzig... THAT'S NUMBERWANG confidence: 100.0% shinty-six shinty-six... That's not Numberwang. confidence: 100.0% Requires Python 3.8 or newer. That's the only requirement. python from numberwang import load model, wang probabilities model = load model "model.json" probs = wang probabilities model, "forty-seven" p not numberwang, p numberwang, p not a number, p wangernumb verdict = max range 4 , key=probs. getitem | id | verdict | |---|---| | 0 | That's not Numberwang. | | 1 | THAT'S NUMBERWANG | | 2 | That's not even a number. It can never be Numberwang. | | 3 | That's Wangernumb | | input | behaviour | |---|---| | 42 , sixty-six , 12345 | digits or words | | zweiundzwanzig , veintidós , tweeëntwintig | eleven languages, accents optional | | 5 2 , 96 divided by 2 , twelve plus four | arithmetic, judged on the result | | 45 - 44 , double four , eins | anything worth 1 or 44 rotates the board | | -7 , 4.5 , £5 , 50% , 9:30 | negatives, decimals, currency, units, times | | XLIV , twenty-third , 22nd | Roman numerals and ordinals | | fortnight , vierendelen , september | words built on a number, judged as that number | | achtneming , often , money | words that merely contain one are not numbers | | shinty-six , twentington | fictional numbers are numbers too | | bonjour , hello how are you | no numeric content — can never be Numberwang | A number's wangness is a property of the number , not the language it is said in: four , vier , quatre and cuatro all get the same verdict. chars → Embedding 32 → Conv1d 128, k3 → ReLU → Conv1d 128, k3 → ReLU → global max pool → Linear 128 → ReLU → Linear 4 → softmax 80,804 parameters. The network reads characters directly — there is no tokenizer, no normalizer and no rules engine at inference. Digits, operators, canon verdicts and the eleven languages are all held in the weights, and model.json contains the lot. A hosted version runs on Hugging Face Spaces. To run the same demo locally: pip install -r requirements.txt python3 app.py gradio is needed only for the demo. The model itself never needs it. 88.9% over 486 held-out adjudications macro-F1 0.896 , against a ceiling of roughly 98% — about 2% of training labels are inverted, in accordance with long-standing adjudication practice. | class | precision | recall | F1 | |---|---|---|---| | not Numberwang | 0.820 | 0.885 | 0.851 | | Numberwang | 0.919 | 0.900 | 0.910 | | not a number | 0.951 | 0.830 | 0.886 | | Wangernumb | 0.968 | 0.909 | 0.937 | Arithmetic on unseen operands is the weak spot , at 44–72%. The network memorises rather than computes, so small common expressions like 5 2 are reliable while 904 3 is an educated guess. If arithmetic correctness matters, evaluate the expression and hand it the result. MIT — see LICENSE https://github.com/GraafHenk/numberwang/blob/main/LICENSE . No warranty is expressed or implied as to whether any particular number is, or is not, Numberwang.