def __init__(self, string="<STR_LIT>", token=[WORD, POS, CHUNK, PNP, REL, ANCHOR, LEMMA], language="<STR_LIT>"):
<EOL>if _is_tokenstring(string):<EOL><INDENT>token, language = string.tags, getattr(string, "<STR_LIT>", language)<EOL><DEDENT>if not isinstance(string, unicode):<EOL><INDENT>for encoding in (("<STR_LIT:utf-8>",), ("<STR_LIT>",), ("<STR_LIT:utf-8>", "<STR_LIT:ignore>")):<EOL><INDENT>try: string = string.decode(*encoding)<EOL>except:<EOL><INDENT>pass<EOL><DEDENT><DEDENT><DEDENT>self.parent      = None <EOL>self.text        = None <EOL>self.language    = language<EOL>self.id          = _uid()<EOL>self.token       = list(token)<EOL>self.words       = []<EOL>self.chunks      = [] <EOL>self.pnp         = [] <EOL>self._anchors    = {} <EOL>self._relation   = None <EOL>self._attachment = None <EOL>self._previous   = None <EOL>self.relations   = {"<STR_LIT>":{}, "<STR_LIT>":{}, "<STR_LIT>":{}}<EOL>for chars in string.split("<STR_LIT:U+0020>"):<EOL><INDENT>if chars:<EOL><INDENT>self.append(*self.parse_token(chars, token))<EOL><DEDENT><DEDENT>
A nested tree of sentence words, chunks and prepositions.
            The input is a tagged string from parse(). 
            The order in which token tags appear can be specified.