code: func (d *Document) Initialize() {
  	d.WordFrequency = make(map[string]int)
  	for i, paragraph := range strings.Split(d.Content, "\n\n") {
  		for _, s := range d.SentenceTokenizer.Tokenize(paragraph) {
  			wordCount := d.NumWords
  			d.NumSentences++
  			words := []Word{}
  			for _, word := range d.WordTokenizer.Tokenize(s) {
  				word = strings.TrimSpace(word)
  				if len(word) == 0 {
  					continue
  				}
  				d.NumCharacters += countChars(word)
  				if _, found := d.WordFrequency[word]; found {
  					d.WordFrequency[word]++
  				} else {
  					d.WordFrequency[word] = 1
  				}
  				syllables := Syllables(word)
  				words = append(words, Word{Text: word, Syllables: syllables})
  				d.NumSyllables += float64(syllables)
  				if syllables > 2 {
  					d.NumPolysylWords++
  				}
  				if isComplex(word, syllables) {
  					d.NumComplexWords++
  				}
  				d.NumWords++
  			}
  			d.Sentences = append(d.Sentences, Sentence{
  				Text:      strings.TrimSpace(s),
  				Length:    int(d.NumWords - wordCount),
  				Words:     words,
  				Paragraph: i})
  		}
  		d.NumParagraphs++
  	}
  }
docs: // Initialize calculates the data necessary for computing readability and usage
  // statistics.