docs: def _check_diff_result(row, matches, tokenize, join):
          """Returns `row`, possibly with its count changed to 0, depending on
          the status of the n-grams that compose it.
  
          The n-gram represented in `row` can be decomposed into two
          (n-1)-grams. If neither sub-n-gram is present in `matches`, do
          not change the count since this is a new difference.
  
          If both sub-n-grams are present with a positive count, do not
          change the count as it is composed entirely of sub-ngrams and
          therefore not filler.
  
          Otherwise, change the count to 0 as the n-gram is filler.
  
          :param row: result row of the n-gram to check
          :type row: pandas.Series
          :param matches: (n-1)-grams and their associated counts to check
                          against
          :type matches: `dict`
          :param tokenize: function to tokenize a string
          :type tokenize: `function`
          :param join: function to join tokens into a string
          :type join: `function`
          :rtype: pandas.Series
  
          """
          ngram_tokens = tokenize(row[constants.NGRAM_FIELDNAME])
          sub_ngram1 = join(ngram_tokens[:-1])
          sub_ngram2 = join(ngram_tokens[1:])
          count = constants.COUNT_FIELDNAME
          discard = False
          # For performance reasons, avoid searching through matches
          # unless necessary.
          status1 = matches.get(sub_ngram1)
          if status1 == 0:
              discard = True
          else:
              status2 = matches.get(sub_ngram2)
              if status2 == 0:
                  discard = True
              elif (status1 is None) ^ (status2 is None):
                  discard = True
          if discard:
              row[count] = 0
          return row