'Parse the input text, classify it and return an object containing its intent and entities.'

def parse(self, text, time=None):

    if (not text):
        output = self.default_output_attributes()
        output[u'text'] = u''
        return output
    message = Message(text, self.default_output_attributes(), time=time)
    for component in self.pipeline:
        component.process(message, **self.context)
    output = self.default_output_attributes()
    output.update(message.as_dict(only_output_properties=True))
    return output
