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
def _generate_extended_matches ( self , extended_ngrams , highest_n , work , siglum , label ) : 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' ) 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
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`