      each cell in cells
        td= cell
  
  
  doctype html
  html(lang="en")
    head
      meta(charset="utf-8")
      title!= tag_line
      meta(name="description" content="")
      meta(name="author" content="Matthew Honnibal")
      link(rel="stylesheet" href="css/style.css")
      <!--[if lt IE 9]>
      script(src="http://html5shiv.googlecode.com/svn/trunk/html5.js")
      <![endif]-->
  
    body(id="page" role="document")
      header(role="banner")
        h1(class="logo")!= tag_line
        div(class="slogan")!= slogan
  
      nav(role="navigation")
        ul
          li: a(href="#") Home
          li: a(href="#") Docs
          li: a(href="#") License
          li: a(href="#") Blog
  
      main(id="content" role="main")
        section(class="intro")
          +lede
  
          nav(role="navigation")
            ul
              li: a(href="#overview" class="button") Examples
              li: a(href="#overview" class="button") Comparisons
              li: a(href="#example-use" class="button") Demo
              li: a(href="#get-started" class="button") Install
  
        article(class="page landing-page")
          a(name="example-use"): h3 Usage by Example
  
          +example("Load resources and process text")
            pre.language-python
              code
                | from __future__ import unicode_literals, print_function
                | from spacy.en import English
                | nlp = English()
                | doc = nlp('Hello, world. Here are two sentences.')
  
          +example("Get tokens and sentences")
            pre.language-python
              code
                | token = doc[0]
                | sentence = doc.sents[0]
                | assert token[0] is sentence[0]
  
          +example("Use integer IDs for any string")
            pre.language-python
              code
                | hello_id = nlp.vocab.strings['Hello']
                | hello_str = nlp.vocab.strings[hello_id]
                | 
                | assert token.orth == hello_id == 52
                | assert token.orth_ == hello_str == 'Hello'
  
          +example("Get and set string views and flags")
            pre.language-python
              code
                | assert token.shape_ == 'Xxxx'
 
</s> remove         +example("Get and set string views and flags")
          pre.language-python
            code
              | assert token.shape_ == 'Xxxx'
              | for lexeme in nlp.vocab:
              |     if lexeme.is_alpha:
              |         lexeme.shape_ = 'W'
              |     elif lexeme.is_digit:
              |         lexeme.shape_ = 'D'
              |     elif lexeme.is_punct:
              |         lexeme.shape_ = 'P'
              |     else:
              |         lexeme.shape_ = 'M'
              | assert token.shape_ == 'W'
 </s> add     div.discuss
      a(href="#" title="Discuss on Hacker News" rel="nofollow" class="button button-hn")
        | Discuss on Hacker News </s> remove         +example("Calculate inline mark-up on original string")
          pre.language-python
            code
              | Do me

        +example("Efficient binary serialization")
          pre.language-python
            code
              | Do me

        a(name="benchmarks"): h3 Benchmarks

        +comparison("spaCy vs. NLTK")
        +comparison("spaCy vs. Pattern")
        +comparison("spaCy vs. CoreNLP")
        +comparison("spaCy vs. ClearNLP")
        +comparison("spaCy vs. OpenNLP")
        +comparison("spaCy vs. GATE")

        details
          summary: h4 Independent Evaluation
          
          p
            | Independent evaluation by Yahoo! Labs and Emory
            | University, to appear at ACL 2015. Higher is better.
  
          table
            thead
              +columns("System", "Language", "Accuracy", "Speed")

            tbody
              +row("spaCy v0.86", "Cython", "91.9", "13,963")
              +row("spaCy v0.84", "Cython", "90.6", "13,963")
              +row("ClearNLP", "Java", "91.7", "10,271")
              +row("CoreNLP", "Java", "89.6", "8,602")
              +row("MATE", "Java", "92.5", "550")
              +row("Turbo", "C++", "92.4", "349")
              +row("Yara", "Java", "92.3", "340")

          p
            | Accuracy is % unlabelled arcs correct, speed is tokens per second.

          p
            | Joel Tetreault and Amanda Stent (Yahoo! Labs) and Jin-ho Choi (Emory)
            | performed a detailed comparison of the best parsers available.
            | All numbers above are taken from the pre-print they kindly made
            | available to me, except for spaCy v0.86. 

          p
            | I'm particularly grateful to the authors for discussion of their
            | results, which led to the improvement in accuracy between v0.84 and
            | v0.86.  A tip from Jin-ho developer of ClearNLP) was particularly
            | useful.

        details
          summary: h4 Detailed Accuracy Comparison

        details
          summary: h4 Detailed Speed Comparison

          table
            thead
              tr
                th.
                th(colspan=3) Absolute (ms per doc)
                th(colspan=3) Relative (to spaCy)

            tbody
              tr
                td: strong System
                td: strong Split
                td: strong Tag
                td: strong Parse
                td: strong Split
                td: strong Tag
                td: strong Parse

              +row("spaCy", "0.2ms", "1ms", "19ms", "1x", "1x", "1x")
              +row("spaCy", "0.2ms", "1ms", "19ms", "1x", "1x", "1x")
              +row("CoreNLP", "2ms", "10ms", "49ms", "10x", "10x", "2.6x")
              +row("ZPar", "1ms", "8ms", "850ms", "5x", "8x", "44.7x")
              +row("NLTK", "4ms", "443ms", "n/a", "20x", "443x", "n/a")

          p
            | <strong>Set up</strong>: 100,000 plain-text documents were streamed
            | from an SQLite3 database, and processed with an NLP library, to one
            | of three levels of detail &ndash; tokenization, tagging, or parsing.
            | The tasks are additive: to parse the text you have to tokenize and
            | tag it.  The  pre-processing was not subtracted from the times &ndash;
            | I report the time required for the pipeline to complete.  I report
            | mean times per document, in milliseconds.

          p
            | <strong>Hardware</strong>: Intel i7-3770 (2012)
 </s> add     nav(role="navigation")
      ul
        li: a(href="#example-use" class="button") Examples
        li: a(href="#online-demo" class="button") Demo
        li: a(href="#comparisons" class="button") Comparisons
        li: a(href="#install" class="button") Install v0.89 </s> remove         +example("Export to numpy arrays")
          pre.language-python
            code
              | Do me
 </s> add       a(href="#" title="Discuss on Reddit" rel="nofollow" class="button button-reddit")
        | Discuss on Reddit </s> remove         +example("Syntactic dependencies")
          pre.language-python
            code
              | Do me
 </s> add   if (link_name == "example-use")
    include ./usage_examples.jade
  else if (link_name == "online-demo")
    include ./online_demo.jade
  else if (link_name == "comparisons")
    include ./comparisons.jade
  else if (link_name == "install")
    include ./installation.jade </s> remove         +example("Define custom NER rules")
          pre.language-python
            code
              | Do me
 </s> add block intro_block
  section(class="intro")
    +lede
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
      each cell in cells
        td= cell
  
  
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
mixin social      
  footer(role="contentinfo")
    a(href="http://twitter.com/share?text=[ARTICLE HEADLINE]&url=[ARTICLE LINK]&via=honnibal" title="Share on Twitter" rel="nofollow" class="button button-twitter") Share on Twitter
  
          +example("Get and set string views and flags")
            pre.language-python
              code
                | assert token.shape_ == 'Xxxx'
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 * More work on docs 
docs/redesign/spacy_home.jade