docs: def _generate_extended_matches(self, extended_ngrams, highest_n, work,
                                     siglum, label):
          """Returns extended match data derived from `extended_ngrams`.
  
          This extended match data are the counts for all intermediate
          n-grams within each extended n-gram.
  
          :param extended_ngrams: extended n-grams
          :type extended_ngrams: `list` of `str`
          :param highest_n: the highest degree of n-grams in the original results
          :type highest_n: `int`
          :param work: name of the work bearing `extended_ngrams`
          :type work: `str`
          :param siglum: siglum of the text bearing `extended_ngrams`
          :type siglum: `str`
          :param label: label associated with the text
          :type label: `str`
          :rtype: `pandas.DataFrame`
  
          """
          # Add data for each n-gram within each extended n-gram. Since
          # this treats each extended piece of text separately, the same
          # n-gram may be generated more than once, so the complete set
          # of new possible matches for this filename needs to combine
          # the counts for such.
          rows_list = []
          for extended_ngram in extended_ngrams:
              text = Text(extended_ngram, self._tokenizer)
              for size, ngrams in text.get_ngrams(highest_n+1,
                                                  len(text.get_tokens())):
                  data = [{constants.WORK_FIELDNAME: work,
                           constants.SIGLUM_FIELDNAME: siglum,
                           constants.LABEL_FIELDNAME: label,
                           constants.SIZE_FIELDNAME: size,
                           constants.NGRAM_FIELDNAME: ngram,
                           constants.COUNT_FIELDNAME: count}
                          for ngram, count in ngrams.items()]
                  rows_list.extend(data)
          self._logger.debug('Number of extended results: {}'.format(
              len(rows_list)))
          extended_matches = pd.DataFrame(rows_list)
          rows_list = None
          self._logger.debug('Finished generating intermediate extended matches')
          # extended_matches may be an empty DataFrame, in which case
          # manipulating it on the basis of non-existing columns is not
          # going to go well.
          groupby_fields = [constants.NGRAM_FIELDNAME, constants.WORK_FIELDNAME,
                            constants.SIGLUM_FIELDNAME, constants.SIZE_FIELDNAME,
                            constants.LABEL_FIELDNAME]
          if constants.NGRAM_FIELDNAME in extended_matches:
              extended_matches = extended_matches.groupby(
                  groupby_fields, sort=False).sum().reset_index()
          return extended_matches