code: func (p *Tagger) Run() {
  	defer close(p.Output)
  
  	go p.getSentences()
  
  	for s := range p.sentences {
  		length := len(s)
  		if length == 0 {
  			continue
  		}
  		for i, a := range s {
  			tag, ok := p.shortcut(a.Lexeme)
  			if !ok {
  				sf, tf := getFeatures(s, i)
  				tag = p.perceptron.predict(sf, tf)
  			}
  
  			p.setTag(a, tag)
  		}
  		p.Output <- s
  	}
  }
docs: // Run is used to tag a sentence. Lexemes arrive from the lexer in a channel (*Tagger.Input), and an annotated sentence is sent down the Output channel