code: func (d *Parser) SprintFeatures(features []int) string {
  	// tabcount := int(atomic.LoadUint32(&TABCOUNT))
  
  	var buf bytes.Buffer
  
  	for i := 0; i < 18; i++ {
  		number := features[i]
  		id := number - wordFeatsStartAt
  		word, _ := d.corpus.Word(id)
  
  		if word == "" {
  			word = "-NULL-"
  		}
  
  		buf.WriteString(fmt.Sprintf("%d, %q, %d \n", feature(i), word, number))
  	}
  
  	for i := 0; i < 18; i++ {
  		number := features[i+18]
  
  		buf.WriteString(fmt.Sprintf("%d, %v, %d\n", feature(i+18), lingo.POSTag(number), number))
  	}
  
  	for i := 0; i < 12; i++ {
  		number := features[i+36]
  		id := number - labelFeatsStartAt
  
  		buf.WriteString(fmt.Sprintf("%d, %v, %d\n", feature(i+36), lingo.DependencyType(id), number))
  	}
  
  	return buf.String()
  }
docs: /* Nice output of shit */