sourcedrecall English parser models (UD English-EWT, ONNX)

An English tokenizer, multi-word token expander, part-of-speech tagger, lemmatizer and dependency parser in the architecture of Stanza 1.14.0, trained only on openly licensed data and converted so they run on ONNX Runtime and numpy without PyTorch.

They are used by sourcedrecall, a local memory for AI assistants whose grammar rules read the user's messages through these parses. Running them without PyTorch cuts its install by about 600 MB.

What they were trained on

  • Part-of-speech tagger and dependency parser: trained for sourcedrecall on UD English-EWT v2.18 alone (CC BY-SA 4.0), with the GloVe word vectors Stanza packages for English (100,000 words, 100 dimensions; GloVe is under the Open Data Commons Public Domain Dedication and License), no character language model, using Stanza 1.14.0's training scripts (tools/stanza_ort/train_ewt.sh in the sourcedrecall repository). The parser's training data was tagged by this tagger.
  • Tokenizer, multi-word token expander and lemmatizer: Stanza's own English EWT models (tokenize/ewt, mwt/ewt, lemma/ewt_nocharlm), trained by the Stanford NLP Group on UD English-EWT.

So every model here is trained on UD English-EWT and nothing else, and the archive includes no data or vectors under a non-commercial licence. An earlier archive in this repository (sourcedrecall-parser-en-stanza1.14.0.tar.gz, at commit 72e0cff) holds Stanza's English "combined" models instead, which are partly trained on text under non-commercial terms; sourcedrecall no longer uses it.

Accuracy

UD English-EWT test set, gold tokenization (tagging and parsing only), every word:

UPOS UAS LAS
these models 96.41 91.05 88.83
Stanza's own EWT models without a character model 96.68 91.25 88.77
Stanza's default English "combined" models 96.77 92.20 90.04

In sourcedrecall, the same code with these models and with Stanza's combined models gave the same LoCoMo test score (854 of 1,307 questions; 44 questions only one got right, 44 only the other) and the same counts on its pasted-text sets (2026-10-15).

Same parses as Stanza

The runtime that loads these files (stanza_ort, in the sourcedrecall repository) was checked against Stanza 1.14.0 on PyTorch with the same models on 7,755 texts (246,425 words): every LoCoMo conversation turn, the sourcedrecall benchmark cases, its parser test sentences, and long and unusual inputs (lists, code mixed with prose, emoji, 8,000-character messages). Every field of every word (text, upos, xpos, feats, lemma, head, deprel, character offsets) and every sentence split was identical, one text at a time and in batches of 64. Checked on macOS arm64.

The PyTorch files the archive was converted from are in pytorch/ here, for that check and for anyone who wants to use them with Stanza itself. The trained parser's saved config has resolve_head_constraints removed: Stanza's training writes it as off, which makes Stanza's pipeline skip the head repair it does for its own models.

Files

sourcedrecall-parser-en-ewt.tar.gz unpacks to:

file what it is
tok.onnx tokenizer and sentence splitter network
pos.onnx, pos_char.onnx part-of-speech and morphological features tagger, its character model
dep.onnx, dep_char.onnx dependency parser (arc and label scorers), its character model
pretrain_emb.npy the word vectors the tagger and parser use
lemma.npz, mwt.npz weights of the lemmatizer and multi-word token sequence models
config.json vocabularies, model settings and the lemma dictionaries
NOTICE where each part comes from and its licence

sha256 of the archive: 3cde3a9b29b6da81e72ad3208874fcdbb1961df82130829d3b8f7dd01ef362b1

How they were made

tools/stanza_ort/convert.py in the sourcedrecall repository loads the models with Stanza 1.14.0 (STANZA_PACKAGES=ours, tools/stanza_ort/pkgs.py) and exports each network with torch.onnx.export; two layers were rewritten in exactly equivalent form for export (nn.Bilinear as an einsum, a boolean identity mask from arange). tools/stanza_ort/parity.py is the comparison above.

Licence and credit

The model weights are released under CC BY-SA 4.0, the licence of the UD English-EWT data they are trained on. The conversion code and the runtime are Apache-2.0, in the sourcedrecall repository. The architecture, training code, and the tokenizer, multi-word token and lemma models are Stanza's, by the Stanford NLP Group (Apache-2.0).

Peng Qi, Yuhao Zhang, Yuhui Zhang, Jason Bolton and Christopher D. Manning. 2020. Stanza: A Python Natural Language Processing Toolkit for Many Human Languages. In Proceedings of ACL 2020: System Demonstrations.

Natalia Silveira, Timothy Dozat, Marie-Catherine de Marneffe, Samuel Bowman, Miriam Connor, John Bauer and Christopher D. Manning. 2014. A Gold Standard Dependency Corpus for English. In Proceedings of LREC 2014. (UD English-EWT)

Jeffrey Pennington, Richard Socher and Christopher D. Manning. 2014. GloVe: Global Vectors for Word Representation. In Proceedings of EMNLP 2014.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support