code: def determine_intent(self, utterance, num_results=1):
          
          intents = []
          for domain in self.domains:
              gen = self.domains[domain].determine_intent(utterance=utterance,
                                                          num_results=1)
              for intent in gen:
                  intents.append(intent)
  
          heapq.nlargest(
              num_results, intents, key=lambda domain: domain['confidence'])
          for intent in intents:
              yield intent
docs: Given an utterance, provide a valid intent.
  
          utterance(str): an ascii or unicode string representing natural language speech
          num_results(int): a maximum number of results to be returned.
  
          Returns: A generator the yields dictionaries.