class_docstr: Logic common to all interpolated language models.
  
  The idea to abstract this comes from Chen & Goodman 1995.
  Do not instantiate this class directly!
code: def unmasked_score(self, word, context=None):
      if not context:
          # The base recursion case: no context, we only have a unigram.
          return self.estimator.unigram_score(word)
      if not self.counts[context]:
          # It can also happen that we have no data for this context.
          # In that case we defer to the lower-order ngram.
          # This is the same as setting alpha to 0 and gamma to 1.
          alpha, gamma = 0, 1
      else:
          alpha, gamma = self.estimator.alpha_gamma(word, context)
      return alpha + gamma * self.unmasked_score(word, context[1:])
  
imports: from nltk.lm.api import LanguageModel, Smoothing
  from nltk.lm.smoothing import AbsoluteDiscounting, KneserNey, WittenBell
label_desc: Use image node_id 2 for calling the InterpolatedLanguageModel obj's underlying member method code with example usage: obj.unmasked_score(word, context) and returns: unknown, self