code: def _add_ngram_to_token_stats(self, ngram, offset_tokens):
      toktext = " ".join(self.text_from_token(tok) for tok in ngram)
      token_stats = offset_tokens.setdefault(toktext, [0, []])
      token_stats[0] += 1
      start = ngram[0].idx
      end = ngram[-1].idx + len(ngram[-1].orth_)
      token_stats[1].append((start, end))
  
imports: from typing import List, Tuple, Union, Optional, Callable, Dict
  from collections import deque
  from scattertext.features.FeatsFromSpacyDoc import FeatsFromSpacyDoc
  from scattertext.features.featoffsets.feat_and_offset_getter import FeatAndOffsetGetter
  from scattertext.Common import MY_ENGLISH_STOP_WORDS
label_desc: Use image node_id 3 for calling the FlexibleNGramFeaturesBase obj's underlying member method code with example usage: obj._add_ngram_to_token_stats(ngram, offset_tokens) without return types