def parse(self, source, language=None, classname=None, max_length=None,<EOL>attributes=None):
attributes = parse_attributes(attributes, classname)<EOL>source = preprocess(source)<EOL>chunks = self.segmenter.segment(source, language)<EOL>html_code = chunks.html_serialize(attributes, max_length=max_length)<EOL>return {<EOL>'<STR_LIT>': chunks,<EOL>'<STR_LIT>': html_code,<EOL>}<EOL>
Parses the source sentence to output organized HTML code.

        Args:
          source (str): Source sentence to process.
          language (:obj:`str`, optional): Language code.
          max_length (:obj:`int`, optional): Maximum length of a chunk.
          attributes (:obj:`dict`, optional): Attributes for output SPAN tags.

        Returns:
          A dictionary containing :code:`chunks` (:obj:`budou.chunk.ChunkList`)
          and :code:`html_code` (:obj:`str`).