code: func (ngram *NGramIndex) Add(input string) (TokenID, error) {
  	if ngram.index == nil {
  		ngram.init()
  	}
  	results, error := ngram.splitInput(input)
  	if error != nil {
  		return -1, error
  	}
  	ixstr, error := ngram.spool.Append(input)
  	if error != nil {
  		return -1, error
  	}
  	for _, hash := range results {
  		ngram.Lock()
  		if ngram.index[hash] == nil {
  			ngram.index[hash] = make(map[TokenID]int)
  		}
  		// insert string and counter
  		ngram.index[hash][ixstr]++
  		ngram.Unlock()
  	}
  	return ixstr, nil
  }
docs: // Add token to index. Function returns token id, this id can be converted
  // to string with function "GetString".