code: func newSentenceTokenizer(s *sentences.Storage) (*sentences.DefaultSentenceTokenizer, error) {
  	training := s
  
  	if training == nil {
  		b, err := data.Asset("data/english.json")
  		if err != nil {
  			return nil, err
  		}
  
  		training, err = sentences.LoadTraining(b)
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	// supervisor abbreviations
  	abbrevs := []string{"sgt", "gov", "no", "mt"}
  	for _, abbr := range abbrevs {
  		training.AbbrevTypes.Add(abbr)
  	}
  
  	lang := sentences.NewPunctStrings()
  	word := newWordTokenizer(lang)
  	annotations := sentences.NewAnnotations(training, lang, word)
  
  	ortho := &sentences.OrthoContext{
  		Storage:      training,
  		PunctStrings: lang,
  		TokenType:    word,
  		TokenFirst:   word,
  	}
  
  	multiPunct := &multiPunctWordAnnotation{
  		Storage:      training,
  		TokenParser:  word,
  		TokenGrouper: &sentences.DefaultTokenGrouper{},
  		Ortho:        ortho,
  	}
  
  	annotations = append(annotations, multiPunct)
  
  	tokenizer := &sentences.DefaultSentenceTokenizer{
  		Storage:       training,
  		PunctStrings:  lang,
  		WordTokenizer: word,
  		Annotations:   annotations,
  	}
  
  	return tokenizer, nil
  }
docs: // English customized sentence tokenizer.