anchor.diff:  
       +row
           +cell #[code Tokenizer.load]
  -        +cell -
  +        +cell
  +            |  #[+api("tokenizer#from_disk") #[code Tokenizer.from_disk]]
  +            |  #[+api("tokenizer#from_bytes") #[code Tokenizer.from_bytes]]
   
       +row
           +cell #[code Tagger.load]
  
positive.code:             |  entirely new #[strong deep learning-powered models] for spaCy's tagger,
              |  parser and entity recognizer. The new models are #[strong 20x smaller]
              |  than the linear models that have powered spaCy until now: from 300 MB to
              |  only 14 MB.
  
          p
              |  We've also made several usability improvements that are
  
negative.code: 
  +h(2, "benchmarks") Benchmarks
  
  +under-construction
  
  +aside("Data sources")
      |  #[strong Parser, tagger, NER:] #[+a("https://www.gabormelli.com/RKB/OntoNotes_Corpus") OntoNotes 5]#[br]
      |  #[strong Word vectors:] #[+a("http://commoncrawl.org") Common Crawl]#[br]
  
  p The evaluation was conducted on raw text with no gold standard information.
  
  +table(["Model", "Version", "Type", "UAS", "LAS", "NER F", "POS", "w/s"])
      mixin benchmark-row(name, details, values, highlight, style)
          +row(style)
              +cell #[code=name]
              for cell in details
                  +cell=cell
              for cell, i in values
                  +cell.u-text-right
                      if highlight && highlight[i]
                          strong=cell
                      else
                          !=cell
  
      +benchmark-row("en_core_web_sm", ["2.0.0", "neural"], ["91.2", "89.2", "82.6", "96.6", "10,300"], [1, 1, 1, 0, 0])
      +benchmark-row("en_core_web_sm", ["1.2.0", "linear"], ["86.6", "83.8", "78.5", "96.6", "25,700"], [0, 0, 0, 0, 1], "divider")
      +benchmark-row("en_core_web_md", ["1.2.1", "linear"], ["90.6", "88.5", "81.4", "96.7", "18,800"], [0, 0, 0, 1, 0])
  