<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse(source, segmenter='nlapi', language=None, max_length=None, classname=None, attributes=None, **kwargs):
 """Parses input source. Args: source (str):
 Input source to process. segmenter (:obj:`str`, optional):
 Segmenter to use [default: nlapi]. language (:obj:`str`, optional):
 Language code. max_length (:obj:`int`, optional):
 Maximum length of a chunk. classname (:obj:`str`, optional):
 Class name of output SPAN tags. attributes (:obj:`dict`, optional):
 Attributes for output SPAN tags. Returns: Results in a dict. :code:`chunks` holds a list of chunks (:obj:`budou.chunk.ChunkList`) and :code:`html_code` holds the output HTML code. """

  parser = get_parser(segmenter, **kwargs)
  return parser.parse(
      source, language=language, max_length=max_length, classname=classname,
      attributes=attributes)