def respond(self, text, sessionID = "general"):
        """
        Generate a response to the user input.

        :type text: str
        :param text: The string to be mapped
        :rtype: str
        """
        text =  self.__normalize(text)
        previousText = self.__normalize(self.conversation[sessionID][-2])
        text_correction = self.__correction(text)
        current_topic = self.topic[sessionID]
        current_topic_order = current_topic.split(".")
        while current_topic_order:
          try:return self.__response_on_topic(text, previousText, text_correction, current_topic, sessionID)
          except ValueError as e:pass
          current_topic_order.pop()
          current_topic = ".".join(current_topic_order)
        try:return self.__response_on_topic(text, previousText, text_correction, current_topic, sessionID)
        except ValueError as e:return "Sorry I couldn't find anything relevant"
Generate a response to the user input.

        :type text: str
        :param text: The string to be mapped
        :rtype: str