§
    �zIfpK  ã                   óÞ   — d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ dZ G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    N)ÚPIPE)Ú_java_optionsÚconfig_javaÚfind_jar_iterÚfind_jars_within_pathÚjava)ÚParserI©ÚDependencyGraph)ÚTreez2https://nlp.stanford.edu/software/lex-parser.shtmlc                   ór   — e Zd ZdZdZdZdZdZdZ	 	 	 	 	 	 	 dd„Z	d„ Z
dd„Zdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚGenericStanfordParserz Interface to the Stanford Parserz+stanford-parser-(\d+)(\.(\d+))+-models\.jarzstanford-parser\.jarz3edu.stanford.nlp.parser.lexparser.LexicalizedParserFNú4edu/stanford/nlp/models/lexparser/englishPCFG.ser.gzÚutf8ú-mx4gÚ c                 ó’  — t          t          | j        |ddt          |d¬¦  «        d„ ¬¦  «        }t          t          | j        |ddt          |d¬¦  «        d„ ¬¦  «        }	t
          j                             |¦  «        d	         }
t          |	gt          |
¦  «        z   ¦  «        | _
        || _        || _        || _        || _        d S )
N)ÚSTANFORD_PARSERÚSTANFORD_CORENLP© T)Úenv_varsÚ
searchpathÚurlÚverboseÚis_regexc                 ó@   — t           j                             | ¦  «        S ©N©ÚosÚpathÚdirname©Ú
model_paths    úG/var/www/piapp/venv/lib/python3.11/site-packages/nltk/parse/stanford.pyú<lambda>z0GenericStanfordParser.__init__.<locals>.<lambda><   ó   € ¥2¤7§?¢?°:Ñ#>Ô#>€ ó    )Úkey)ÚSTANFORD_MODELSr   c                 ó@   — t           j                             | ¦  «        S r   r   r"   s    r$   r%   z0GenericStanfordParser.__init__.<locals>.<lambda>I   r&   r'   r   )Úmaxr   Ú_JARÚ_stanford_urlÚ_MODEL_JAR_PATTERNr   r    ÚsplitÚtupler   Ú
_classpathr#   Ú	_encodingÚcorenlp_optionsÚjava_options)ÚselfÚpath_to_jarÚpath_to_models_jarr#   Úencodingr   r4   r3   Ústanford_jarÚ	model_jarÚstanford_dirs              r$   Ú__init__zGenericStanfordParser.__init__&   sî   € õ ÝØ”	ØØ@ØÝ!ØØðñ ô ð ?Ð>ð
ñ 
ô 
ˆõ ÝØÔ'Ø"Ø@ØÝ!ØØðñ ô ð ?Ð>ð
ñ 
ô 
ˆ	õ  ”w—}’} \Ñ2Ô2°1Ô5ˆÝ  Õ.CÀLÑ.QÔ.QÑ QÑRÔRˆŒà$ˆŒØ!ˆŒØ.ˆÔØ(ˆÔÐÐr'   c           
      ó  — g }g }g }d}|                      d¦  «        D ]Û}|dk    r¼|r'|                     t          |¦  «        ¦  «         g }d}Œ1| j        r@|                     |                      d                     |¦  «        ¦  «        ¦  «         g }d}Œx|                     t          |                      d                     |¦  «        ¦  «        g¦  «        ¦  «         g }ŒÄ|                     |¦  «         d}ŒÜt          |¦  «        S )NFr   ú
T)Ú
splitlinesÚappendÚiterÚ_DOUBLE_SPACED_OUTPUTÚ
_make_treeÚjoin)r5   Úoutput_ÚresÚ	cur_linesÚ	cur_treesÚblankÚlines          r$   Ú_parse_trees_outputz)GenericStanfordParser._parse_trees_outputW   s  € ØˆØˆ	Øˆ	ØˆØ×&Ò& uÑ-Ô-ð 	ð 	ˆDØ�rŠzˆzØð 
#Ø—J’J�t I™œÑ/Ô/Ð/Ø "�IØ!�E�EØÔ/ð #Ø×$Ò$ T§_¢_°T·Y²Y¸yÑ5IÔ5IÑ%JÔ%JÑKÔKÐKØ "�IØ �E�Eà—J’J�t T§_¢_°T·Y²Y¸yÑ5IÔ5IÑ%JÔ%JÐ$KÑLÔLÑMÔMÐMØ "�I�Ià× Ò  Ñ&Ô&Ð&Ø��Ý�C‰yŒyÐr'   c           
      óÆ   — | j         d| j        ddd| j        dddg
}|                      |                      |d                     d	„ |D ¦   «         ¦  «        |¦  «        ¦  «        S )
aâ  
        Use StanfordParser to parse multiple sentences. Takes multiple sentences as a
        list where each sentence is a list of words.
        Each sentence will be automatically tagged with this StanfordParser instance's
        tagger.
        If whitespaces exists inside a token, then the token will be treated as
        separate tokens.

        :param sentences: Input sentences to parse
        :type sentences: list(list(str))
        :rtype: iter(iter(Tree))
        ú-modelú
-sentencesÚnewlineú-outputFormatú
-tokenizedz-escaperz-edu.stanford.nlp.process.PTBEscapingProcessorr>   c              3   ó@   K  — | ]}d                       |¦  «        V — ŒdS )ú N©rD   )Ú.0Úsentences     r$   ú	<genexpr>z4GenericStanfordParser.parse_sents.<locals>.<genexpr>‰   s.   è è € ÐLÐL°h˜sŸxšx¨Ñ1Ô1ÐLÐLÐLÐLÐLÐLr'   ©Ú_MAIN_CLASSr#   Ú_OUTPUT_FORMATrK   Ú_executerD   ©r5   Ú	sentencesr   Úcmds       r$   Úparse_sentsz!GenericStanfordParser.parse_sentsn   s~   € ð ÔØØŒOØØØØÔØØØ;ð
ˆð ×'Ò'Ø�MŠMØ�T—Y’YÐLÐLÀ)ÐLÑLÔLÑLÔLÈgñô ñ
ô 
ð 	
r'   c                 óJ   — t          |                      |g|¦  «        ¦  «        S )a&  
        Use StanfordParser to parse a sentence. Takes a sentence as a string;
        before parsing, it will be automatically tokenized and tagged by
        the Stanford Parser.

        :param sentence: Input sentence to parse
        :type sentence: str
        :rtype: iter(Tree)
        )ÚnextÚraw_parse_sents©r5   rV   r   s      r$   Ú	raw_parsezGenericStanfordParser.raw_parse�   s$   € õ �D×(Ò(¨(¨°WÑ=Ô=Ñ>Ô>Ð>r'   c                 ó¬   — | j         d| j        ddd| j        g}|                      |                      |d                     |¦  «        |¦  «        ¦  «        S )aI  
        Use StanfordParser to parse multiple sentences. Takes multiple sentences as a
        list of strings.
        Each sentence will be automatically tokenized and tagged by the Stanford Parser.

        :param sentences: Input sentences to parse
        :type sentences: list(str)
        :rtype: iter(iter(Tree))
        rM   rN   rO   rP   r>   rX   r\   s       r$   rb   z%GenericStanfordParser.raw_parse_sents™   sa   € ð ÔØØŒOØØØØÔð
ˆð ×'Ò'Ø�MŠM˜#˜tŸyšy¨Ñ3Ô3°WÑ=Ô=ñ
ô 
ð 	
r'   c                 óJ   — t          |                      |g|¦  «        ¦  «        S )a0  
        Use StanfordParser to parse a sentence. Takes a sentence as a list of
        (word, tag) tuples; the sentence must have already been tokenized and
        tagged.

        :param sentence: Input sentence to parse
        :type sentence: list(tuple(str, str))
        :rtype: iter(Tree)
        )ra   Útagged_parse_sentsrc   s      r$   Útagged_parsez"GenericStanfordParser.tagged_parse°   s$   € õ �D×+Ò+¨X¨J¸Ñ@Ô@ÑAÔAÐAr'   c                 óØ   ‡— dŠ| j         d| j        ddd| j        dd‰dd	d
dg}|                      |                      |d                     ˆfd„|D ¦   «         ¦  «        |¦  «        ¦  «        S )ad  
        Use StanfordParser to parse multiple sentences. Takes multiple sentences
        where each sentence is a list of (word, tag) tuples.
        The sentences must have already been tokenized and tagged.

        :param sentences: Input sentences to parse
        :type sentences: list(list(tuple(str, str)))
        :rtype: iter(iter(Tree))
        ú/rM   rN   rO   rP   rQ   z-tagSeparatorz-tokenizerFactoryz,edu.stanford.nlp.process.WhitespaceTokenizerz-tokenizerMethodÚnewCoreLabelTokenizerFactoryr>   c              3   óZ   •K  — | ]%}d                       ˆfd„|D ¦   «         ¦  «        V — Œ&dS )rS   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r   rT   )rU   ÚtaggedÚtag_separators     €r$   rW   zEGenericStanfordParser.tagged_parse_sents.<locals>.<genexpr>.<genexpr>Ü   s1   øè è € ÐOÐO¸F˜]×/Ò/°Ñ7Ô7ÐOÐOÐOÐOÐOÐOr'   NrT   )rU   rV   ro   s     €r$   rW   z;GenericStanfordParser.tagged_parse_sents.<locals>.<genexpr>Û   sX   øè è € ð ð à ð —H’HÐOÐOÐOÐOÀhÐOÑOÔOÑOÔOðð ð ð ð ð r'   rX   )r5   r]   r   r^   ro   s       @r$   rg   z(GenericStanfordParser.tagged_parse_sents¼   s­   ø€ ð ˆàÔØØŒOØØØØÔØØØØØ:ØØ*ð
ˆð" ×'Ò'Ø�MŠMØØ—	’	ð ð ð ð à$-ðñ ô ñ ô ð ñô ñ	
ô 	
ð 		
r'   c                 óè  — | j         }|                     d|g¦  «         | j        r,|                     | j                             ¦   «         ¦  «         d                     t
          ¦  «        }t          | j        |¬¦  «         t          j	        dd¬¦  «        5 }t          |t          ¦  «        r|r|                     |¦  «        }|                     |¦  «         |                     ¦   «          | j        r<|                     d¦  «         t#          || j        |t&          t&          ¬¦  «        \  }}n?|                     |j        ¦  «         t#          || j        t&          t&          ¬	¦  «        \  }}|                     d
d¦  «        }|                     dd¦  «        }|                     |¦  «        }d d d ¦  «         n# 1 swxY w Y   t1          j        |j        ¦  «         t          |d¬¦  «         |S )Nz	-encodingrS   )Úoptionsr   ÚwbF)ÚmodeÚdeleter   )Ú	classpathÚstdinÚstdoutÚstderr)ru   rw   rx   s   Â ó    s     )r2   Úextendr3   r/   rD   r   r   r4   ÚtempfileÚNamedTemporaryFileÚ
isinstanceÚstrÚencodeÚwriteÚflushÚ
_USE_STDINÚseekr   r1   r   r@   ÚnameÚreplaceÚdecoder   Úunlink)	r5   r^   Úinput_r   r8   Údefault_optionsÚ
input_filerw   rx   s	            r$   r[   zGenericStanfordParser._executeã   s  € Ø”>ˆØ�
Š
�K Ð*Ñ+Ô+Ð+ØÔð 	5Ø�JŠJ�tÔ+×1Ò1Ñ3Ô3Ñ4Ô4Ð4àŸ(š(¥=Ñ1Ô1ˆõ 	˜DÔ-°wÐ?Ñ?Ô?Ð?õ Ô(¨d¸5ÐAÑAÔAð 	-ÀZå˜&¥#Ñ&Ô&ð 1¨8ð 1ØŸš xÑ0Ô0�Ø×Ò˜VÑ$Ô$Ð$Ø×ÒÑÔÐð Œð Ø—’ Ñ"Ô"Ð"Ý!%ØØ"œoØ$ÝÝð"ñ "ô "‘�˜˜ð —
’
˜:œ?Ñ+Ô+Ð+Ý!%Ø 4¤?½4Íð"ñ "ô "‘�˜ð —^’^ K°Ñ6Ô6ˆFØ—^’^ K°Ñ6Ô6ˆFØ—]’] 8Ñ,Ô,ˆFð3	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-õ6 	Œ	�*”/Ñ"Ô"Ð"õ 	˜O°UÐ;Ñ;Ô;Ð;àˆs   ÂDF=Æ=GÇG)NNr   r   Fr   r   ©F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r.   r,   rY   r‚   rB   r<   rK   r_   rd   rb   rh   rg   r[   r   r'   r$   r   r      sí   € € € € € Ø*Ð*àGÐØ"€DØG€Kà€JØ!Ðð ØØIØØØØð/)ð /)ð /)ð /)ðbð ð ð.
ð 
ð 
ð 
ð>
?ð 
?ð 
?ð 
?ð
ð 
ð 
ð 
ð.
Bð 
Bð 
Bð 
Bð%
ð %
ð %
ð %
ðN,ð ,ð ,ð ,ð ,ð ,r'   r   c                   ó,   ‡ — e Zd ZdZdZˆ fd„Zd„ Zˆ xZS )ÚStanfordParsera¤  
    >>> parser=StanfordParser(
    ...     model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"
    ... ) # doctest: +SKIP

    >>> list(parser.raw_parse("the quick brown fox jumps over the lazy dog")) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('ROOT', [Tree('NP', [Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['quick']), Tree('JJ', ['brown']),
    Tree('NN', ['fox'])]), Tree('NP', [Tree('NP', [Tree('NNS', ['jumps'])]), Tree('PP', [Tree('IN', ['over']),
    Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['lazy']), Tree('NN', ['dog'])])])])])])]

    >>> sum([list(dep_graphs) for dep_graphs in parser.raw_parse_sents((
    ...     "the quick brown fox jumps over the lazy dog",
    ...     "the quick grey wolf jumps over the lazy fox"
    ... ))], []) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('ROOT', [Tree('NP', [Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['quick']), Tree('JJ', ['brown']),
    Tree('NN', ['fox'])]), Tree('NP', [Tree('NP', [Tree('NNS', ['jumps'])]), Tree('PP', [Tree('IN', ['over']),
    Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['lazy']), Tree('NN', ['dog'])])])])])]), Tree('ROOT', [Tree('NP',
    [Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['quick']), Tree('JJ', ['grey']), Tree('NN', ['wolf'])]), Tree('NP',
    [Tree('NP', [Tree('NNS', ['jumps'])]), Tree('PP', [Tree('IN', ['over']), Tree('NP', [Tree('DT', ['the']),
    Tree('JJ', ['lazy']), Tree('NN', ['fox'])])])])])])]

    >>> sum([list(dep_graphs) for dep_graphs in parser.parse_sents((
    ...     "I 'm a dog".split(),
    ...     "This is my friends ' cat ( the tabby )".split(),
    ... ))], []) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('ROOT', [Tree('S', [Tree('NP', [Tree('PRP', ['I'])]), Tree('VP', [Tree('VBP', ["'m"]),
    Tree('NP', [Tree('DT', ['a']), Tree('NN', ['dog'])])])])]), Tree('ROOT', [Tree('S', [Tree('NP',
    [Tree('DT', ['This'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('NP', [Tree('NP', [Tree('NP', [Tree('PRP$', ['my']),
    Tree('NNS', ['friends']), Tree('POS', ["'"])]), Tree('NN', ['cat'])]), Tree('PRN', [Tree('-LRB-', [Tree('', []),
    Tree('NP', [Tree('DT', ['the']), Tree('NN', ['tabby'])]), Tree('-RRB-', [])])])])])])])]

    >>> sum([list(dep_graphs) for dep_graphs in parser.tagged_parse_sents((
    ...     (
    ...         ("The", "DT"),
    ...         ("quick", "JJ"),
    ...         ("brown", "JJ"),
    ...         ("fox", "NN"),
    ...         ("jumped", "VBD"),
    ...         ("over", "IN"),
    ...         ("the", "DT"),
    ...         ("lazy", "JJ"),
    ...         ("dog", "NN"),
    ...         (".", "."),
    ...     ),
    ... ))],[]) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('ROOT', [Tree('S', [Tree('NP', [Tree('DT', ['The']), Tree('JJ', ['quick']), Tree('JJ', ['brown']),
    Tree('NN', ['fox'])]), Tree('VP', [Tree('VBD', ['jumped']), Tree('PP', [Tree('IN', ['over']), Tree('NP',
    [Tree('DT', ['the']), Tree('JJ', ['lazy']), Tree('NN', ['dog'])])])]), Tree('.', ['.'])])])]
    Úpennc                 ór   •— t          j        dt          d¬¦  «          t          ¦   «         j        |i |¤Ž d S )NzcThe StanfordParser will be deprecated
Please use [91mnltk.parse.corenlp.CoreNLPParser[0m instead.é   ©Ú
stacklevel©ÚwarningsÚwarnÚDeprecationWarningÚsuperr<   ©r5   ÚargsÚkwargsÚ	__class__s      €r$   r<   zStanfordParser.__init__G  sL   ø€ ÝŒðRåØð		
ñ 	
ô 	
ð 	
ð 	�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r'   c                 ó*   — t          j        |¦  «        S r   )r   Ú
fromstring©r5   Úresults     r$   rC   zStanfordParser._make_treeQ  s   € ÝŒ˜vÑ&Ô&Ð&r'   ©rŒ   r�   rŽ   r�   rZ   r<   rC   Ú__classcell__©rŸ   s   @r$   r‘   r‘     sY   ø€ € € € € ð0ð 0ðd €Nð*ð *ð *ð *ð *ð'ð 'ð 'ð 'ð 'ð 'ð 'r'   r‘   c                   ó,   ‡ — e Zd ZdZdZˆ fd„Zd„ Zˆ xZS )ÚStanfordDependencyParseraƒ
  
    >>> dep_parser=StanfordDependencyParser(
    ...     model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"
    ... ) # doctest: +SKIP

    >>> [parse.tree() for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")] # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over', 'the', 'lazy'])])]

    >>> [list(parse.triples()) for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")] # doctest: +NORMALIZE_WHITESPACE +SKIP
    [[((u'jumps', u'VBZ'), u'nsubj', (u'fox', u'NN')), ((u'fox', u'NN'), u'det', (u'The', u'DT')),
    ((u'fox', u'NN'), u'amod', (u'quick', u'JJ')), ((u'fox', u'NN'), u'amod', (u'brown', u'JJ')),
    ((u'jumps', u'VBZ'), u'nmod', (u'dog', u'NN')), ((u'dog', u'NN'), u'case', (u'over', u'IN')),
    ((u'dog', u'NN'), u'det', (u'the', u'DT')), ((u'dog', u'NN'), u'amod', (u'lazy', u'JJ'))]]

    >>> sum([[parse.tree() for parse in dep_graphs] for dep_graphs in dep_parser.raw_parse_sents((
    ...     "The quick brown fox jumps over the lazy dog.",
    ...     "The quick grey wolf jumps over the lazy fox."
    ... ))], []) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over', 'the', 'lazy'])]),
    Tree('jumps', [Tree('wolf', ['The', 'quick', 'grey']), Tree('fox', ['over', 'the', 'lazy'])])]

    >>> sum([[parse.tree() for parse in dep_graphs] for dep_graphs in dep_parser.parse_sents((
    ...     "I 'm a dog".split(),
    ...     "This is my friends ' cat ( the tabby )".split(),
    ... ))], []) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('dog', ['I', "'m", 'a']), Tree('cat', ['This', 'is', Tree('friends', ['my', "'"]), Tree('tabby', ['the'])])]

    >>> sum([[list(parse.triples()) for parse in dep_graphs] for dep_graphs in dep_parser.tagged_parse_sents((
    ...     (
    ...         ("The", "DT"),
    ...         ("quick", "JJ"),
    ...         ("brown", "JJ"),
    ...         ("fox", "NN"),
    ...         ("jumped", "VBD"),
    ...         ("over", "IN"),
    ...         ("the", "DT"),
    ...         ("lazy", "JJ"),
    ...         ("dog", "NN"),
    ...         (".", "."),
    ...     ),
    ... ))],[]) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [[((u'jumped', u'VBD'), u'nsubj', (u'fox', u'NN')), ((u'fox', u'NN'), u'det', (u'The', u'DT')),
    ((u'fox', u'NN'), u'amod', (u'quick', u'JJ')), ((u'fox', u'NN'), u'amod', (u'brown', u'JJ')),
    ((u'jumped', u'VBD'), u'nmod', (u'dog', u'NN')), ((u'dog', u'NN'), u'case', (u'over', u'IN')),
    ((u'dog', u'NN'), u'det', (u'the', u'DT')), ((u'dog', u'NN'), u'amod', (u'lazy', u'JJ'))]]

    Ú	conll2007c                 ór   •— t          j        dt          d¬¦  «          t          ¦   «         j        |i |¤Ž d S )NzwThe StanfordDependencyParser will be deprecated
Please use [91mnltk.parse.corenlp.CoreNLPDependencyParser[0m instead.r”   r•   r—   rœ   s      €r$   r<   z!StanfordDependencyParser.__init__‰  sL   ø€ ÝŒð\åØð		
ñ 	
ô 	
ð 	
ð 	�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r'   c                 ó$   — t          |d¬¦  «        S )NÚroot©Útop_relation_labelr
   r¢   s     r$   rC   z#StanfordDependencyParser._make_tree“  ó   € Ý˜v¸&ÐAÑAÔAÐAr'   r¤   r¦   s   @r$   r¨   r¨   U  s`   ø€ € € € € ð.ð .ð` !€Nð*ð *ð *ð *ð *ðBð Bð Bð Bð Bð Bð Br'   r¨   c                   óH   ‡ — e Zd ZdZdZdZdZdZdZdZ	ˆ fd„Z
dd	„Zd
„ Zˆ xZS )ÚStanfordNeuralDependencyParserar  
    >>> from nltk.parse.stanford import StanfordNeuralDependencyParser # doctest: +SKIP
    >>> dep_parser=StanfordNeuralDependencyParser(java_options='-mx4g')# doctest: +SKIP

    >>> [parse.tree() for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")] # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over', 'the', 'lazy']), '.'])]

    >>> [list(parse.triples()) for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")] # doctest: +NORMALIZE_WHITESPACE +SKIP
    [[((u'jumps', u'VBZ'), u'nsubj', (u'fox', u'NN')), ((u'fox', u'NN'), u'det',
    (u'The', u'DT')), ((u'fox', u'NN'), u'amod', (u'quick', u'JJ')), ((u'fox', u'NN'),
    u'amod', (u'brown', u'JJ')), ((u'jumps', u'VBZ'), u'nmod', (u'dog', u'NN')),
    ((u'dog', u'NN'), u'case', (u'over', u'IN')), ((u'dog', u'NN'), u'det',
    (u'the', u'DT')), ((u'dog', u'NN'), u'amod', (u'lazy', u'JJ')), ((u'jumps', u'VBZ'),
    u'punct', (u'.', u'.'))]]

    >>> sum([[parse.tree() for parse in dep_graphs] for dep_graphs in dep_parser.raw_parse_sents((
    ...     "The quick brown fox jumps over the lazy dog.",
    ...     "The quick grey wolf jumps over the lazy fox."
    ... ))], []) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over',
    'the', 'lazy']), '.']), Tree('jumps', [Tree('wolf', ['The', 'quick', 'grey']),
    Tree('fox', ['over', 'the', 'lazy']), '.'])]

    >>> sum([[parse.tree() for parse in dep_graphs] for dep_graphs in dep_parser.parse_sents((
    ...     "I 'm a dog".split(),
    ...     "This is my friends ' cat ( the tabby )".split(),
    ... ))], []) # doctest: +NORMALIZE_WHITESPACE +SKIP
    [Tree('dog', ['I', "'m", 'a']), Tree('cat', ['This', 'is', Tree('friends',
    ['my', "'"]), Tree('tabby', ['-LRB-', 'the', '-RRB-'])])]
    Úconllz)edu.stanford.nlp.pipeline.StanfordCoreNLPz%stanford-corenlp-(\d+)(\.(\d+))+\.jarz,stanford-corenlp-(\d+)(\.(\d+))+-models\.jarTc                 ó’   •— t          j        dt          d¬¦  «          t          ¦   «         j        |i |¤Ž | xj        dz  c_        d S )Nz}The StanfordNeuralDependencyParser will be deprecated
Please use [91mnltk.parse.corenlp.CoreNLPDependencyParser[0m instead.r”   r•   z(-annotators tokenize,ssplit,pos,depparse)r˜   r™   rš   r›   r<   r3   rœ   s      €r$   r<   z'StanfordNeuralDependencyParser.__init__¾  sa   ø€ ÝŒð\åØð		
ñ 	
ô 	
ð 	
ð 	�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØÐÔÐ JÑJÐÔÐÐr'   Fc                 ó    — t          d¦  «        ‚)z¶
        Currently unimplemented because the neural dependency parser (and
        the StanfordCoreNLP pipeline class) doesn't support passing in pre-
        tagged tokens.
        zxtagged_parse[_sents] is not supported by StanfordNeuralDependencyParser; use parse[_sents] or raw_parse[_sents] instead.)ÚNotImplementedError)r5   r]   r   s      r$   rg   z1StanfordNeuralDependencyParser.tagged_parse_sentsÉ  s   € õ "ð:ñ
ô 
ð 	
r'   c                 ó$   — t          |d¬¦  «        S )NÚROOTr­   r
   r¢   s     r$   rC   z)StanfordNeuralDependencyParser._make_treeÕ  r¯   r'   r‹   )rŒ   r�   rŽ   r�   rZ   rY   r,   r.   r‚   rB   r<   rg   rC   r¥   r¦   s   @r$   r±   r±   —  s“   ø€ € € € € ðð ð> €NØ=€KØ3€DØHÐØ€JØ Ðð	Kð 	Kð 	Kð 	Kð 	Kð

ð 

ð 

ð 

ðBð Bð Bð Bð Bð Bð Br'   r±   )r   r{   r˜   Ú
subprocessr   Únltk.internalsr   r   r   r   r   Únltk.parse.apir	   Únltk.parse.dependencygraphr   Ú	nltk.treer   r-   r   r‘   r¨   r±   r   r'   r$   ú<module>r½      s‘  ðð 
€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð àD€ðsð sð sð sð s˜Gñ sô sð sðl@'ð @'ð @'ð @'ð @'Ð*ñ @'ô @'ð @'ðF?Bð ?Bð ?Bð ?Bð ?BÐ4ñ ?Bô ?Bð ?BðD?Bð ?Bð ?Bð ?Bð ?BÐ%:ñ ?Bô ?Bð ?Bð ?Bð ?Br'   