docs: def generate(self, output_dir, catalogue, results, label):
          """Generates the report, writing it to `output_dir`."""
          data = results.get_raw_data()
          labels = catalogue.ordered_labels
          ngrams = self._generate_results(output_dir, labels, data)
          ngram_table = self._generate_ngram_table(output_dir, labels, data)
          corpus_table = self._generate_corpus_table(labels, ngrams)
          context = {'corpus_table': corpus_table, 'focus_label': label,
                     'labels': labels, 'ngram_table': ngram_table, 'sep': os.sep}
          report_name = 'lifetime-{}.html'.format(label)
          self._write(context, output_dir, report_name)