§
    'ê[fw?  ã                   óú   — d dl mZ d dlmZ d dlT d dlT d dlmZ d dlm	Z	  G d„ de
¦  «        Z G d„ d	¦  «        Z G d
„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Ze G d„ de¦  «        ¦   «         ZdS )é    )Útotal_ordering)ÚElementTree)Ú*)Úraise_unorderable_types)ÚTreec                   óR   — e Zd ZdZ	 	 	 	 	 dd„Zdd„Zd„ Zd„ Zdd	„Zd
„ Z	d„ fd„Z
dS )ÚNombankCorpusReadera”  
    Corpus reader for the nombank corpus, which augments the Penn
    Treebank with information about the predicate argument structure
    of every noun instance.  The corpus consists of two parts: the
    predicate-argument annotations themselves, and a set of "frameset
    files" which define the argument labels used by the annotations,
    on a per-noun basis.  Each "frameset file" contains one or more
    predicates, such as ``'turn'`` or ``'turn_on'``, each of which is
    divided into coarse-grained word senses called "rolesets".  For
    each "roleset", the frameset file provides descriptions of the
    argument roles, along with examples.
    Ú NÚutf8c                 óô   — t          |t          ¦  «        rt          ||¦  «        | _        t	          |¦  «        | _        t
                               | |||¦  «         || _        || _        || _	        || _
        dS )aÚ  
        :param root: The root directory for this corpus.
        :param nomfile: The name of the file containing the predicate-
            argument annotations (relative to ``root``).
        :param framefiles: A list or regexp specifying the frameset
            fileids for this corpus.
        :param parse_fileid_xform: A transform that should be applied
            to the fileids in this corpus.  This should be a function
            of one argument (a fileid) that returns a string (the new
            fileid).
        :param parse_corpus: The corpus containing the parse trees
            corresponding to this corpus.  These parse trees are
            necessary to resolve the tree pointers used by nombank.
        N)Ú
isinstanceÚstrÚfind_corpus_fileidsÚ_fileidsÚlistÚCorpusReaderÚ__init__Ú_nomfileÚ
_nounsfileÚ_parse_fileid_xformÚ_parse_corpus)ÚselfÚrootÚnomfileÚ
framefilesÚ	nounsfileÚparse_fileid_xformÚparse_corpusÚencodings           úN/var/www/piapp/venv/lib/python3.11/site-packages/nltk/corpus/reader/nombank.pyr   zNombankCorpusReader.__init__    sw   € õ4 �j¥#Ñ&Ô&ð 	BÝ/°°jÑAÔAˆDŒMÝ˜ZÑ(Ô(ˆŒå×Ò˜d D¨*°hÑ?Ô?Ð?ð  ˆŒØ#ˆŒØ#5ˆÔ Ø)ˆÔÐÐó    c                 ó¬   ‡ ‡‡— i Š‰�ˆfd„‰d<   t          ‰                      ‰ j        ¦  «        ˆˆ fd„‰                      ‰ j        ¦  «        ¬¦  «        S )z‰
        :return: a corpus view that acts as a list of
            ``NombankInstance`` objects, one for each noun in the corpus.
        Nc                 ó   •— | j         ‰k    S ©N)Úbaseform)Úinstr%   s    €r    ú<lambda>z/NombankCorpusReader.instances.<locals>.<lambda>M   s   ø€ °T´]ÀhÒ5N€ r!   Úinstance_filterc                 ó    •—  ‰j         | fi ‰¤ŽS r$   )Ú_read_instance_block)ÚstreamÚkwargsr   s    €€r    r'   z/NombankCorpusReader.instances.<locals>.<lambda>P   s   ø€ Ð4˜4Ô4°VÐFÐF¸vÐFÐF€ r!   ©r   )ÚStreamBackedCorpusViewÚabspathr   r   )r   r%   r,   s   ``@r    Ú	instanceszNombankCorpusReader.instancesF   sn   øøø€ ð
 ˆØÐØ(NÐ(NÐ(NÐ(NˆFÐ$Ñ%Ý%Ø�LŠL˜œÑ'Ô'ØFÐFÐFÐFÐFØ—]’] 4¤=Ñ1Ô1ð
ñ 
ô 
ð 	
r!   c                 ó�   — t          |                      | j        ¦  «        t          |                      | j        ¦  «        ¬¦  «        S )z‘
        :return: a corpus view that acts as a list of strings, one for
            each line in the predicate-argument annotation file.
        r-   )r.   r/   r   Úread_line_blockr   ©r   s    r    ÚlineszNombankCorpusReader.linesT   s@   € õ
 &Ø�LŠL˜œÑ'Ô'ÝØ—]’] 4¤=Ñ1Ô1ð
ñ 
ô 
ð 	
r!   c                 ó`  — |                      d¦  «        d         }|                     dd¦  «        }|                     dd¦  «                             dd¦  «        }d|z  }||                      ¦   «         vrt          d	|z  ¦  «        ‚|                      |¦  «                             ¦   «         5 }t          j        |¦  «                             ¦   «         }d
d
d
¦  «         n# 1 swxY w Y   | 	                    d¦  «        D ]}|j
        d         |k    r|c S Œt          d|› d|› �¦  «        ‚)zE
        :return: the xml description for the given roleset.
        ú.r   ú	perc-signú%Úoneslashonezeroú1/10ú
1-slash-10úframes/%s.xmlúFrameset file for %s not foundNúpredicate/rolesetÚidzRoleset z not found in )ÚsplitÚreplaceÚfileidsÚ
ValueErrorr/   Úopenr   ÚparseÚgetrootÚfindallÚattrib)r   Ú
roleset_idr%   Ú	framefileÚfpÚetreeÚrolesets          r    rM   zNombankCorpusReader.roleset_   sx  € ð ×#Ò# CÑ(Ô(¨Ô+ˆØ×#Ò# K°Ñ5Ô5ˆØ×#Ò#Ð$5°vÑ>Ô>×FÒFØ�Lñ
ô 
ˆð $ hÑ.ˆ	Ø˜DŸLšL™NœNÐ*Ð*ÝÐ=À
ÑJÑKÔKÐKð �\Š\˜)Ñ$Ô$×)Ò)Ñ+Ô+ð 	4¨rÝÔ% bÑ)Ô)×1Ò1Ñ3Ô3ˆEð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4à—}’}Ð%8Ñ9Ô9ð 	ð 	ˆGØŒ~˜dÔ# zÒ1Ð1Ø���ð 2åÐI JÐIÐI¸iÐIÐIÑJÔJÐJs   Â0'C#Ã#C'Ã*C'c                 óÖ  — |�1d|z  }||                       ¦   «         vrt          d|z  ¦  «        ‚|g}n|                       ¦   «         }g }|D ]�}|                      |¦  «                             ¦   «         5 }t	          j        |¦  «                             ¦   «         }ddd¦  «         n# 1 swxY w Y   |                     |                     d¦  «        ¦  «         Œ�t          |¦  «        S )zA
        :return: list of xml descriptions for rolesets.
        Nr<   r=   r>   )
rB   rC   r/   rD   r   rE   rF   ÚappendrG   ÚLazyConcatenation)r   r%   rJ   r   ÚrsetsrK   rL   s          r    ÚrolesetszNombankCorpusReader.rolesetsu   s#  € ð ÐØ'¨(Ñ2ˆIØ §¢¡¤Ð.Ð.Ý Ð!AÀHÑ!LÑMÔMÐMØ#˜ˆJˆJàŸš™œˆJàˆØ#ð 	=ð 	=ˆIð —’˜iÑ(Ô(×-Ò-Ñ/Ô/ð 8°2Ý#Ô)¨"Ñ-Ô-×5Ò5Ñ7Ô7�ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8à�LŠL˜ŸšÐ':Ñ;Ô;Ñ<Ô<Ð<Ð<Ý  Ñ'Ô'Ð's   Á5'B(Â(B,	Â/B,	c                 ó�   — t          |                      | j        ¦  «        t          |                      | j        ¦  «        ¬¦  «        S )z�
        :return: a corpus view that acts as a list of all noun lemmas
            in this corpus (from the nombank.1.0.words file).
        r-   )r.   r/   r   r2   r   r3   s    r    ÚnounszNombankCorpusReader.nounsŠ   s@   € õ
 &Ø�LŠL˜œÑ)Ô)ÝØ—]’] 4¤?Ñ3Ô3ð
ñ 
ô 
ð 	
r!   c                 ó   — dS )NT© )r&   s    r    r'   zNombankCorpusReader.<lambda>•   s   € È€ r!   c                 ó
  — g }t          d¦  «        D ]p}|                     ¦   «                              ¦   «         }|rFt                               || j        | j        ¦  «        } ||¦  «        r|                     |¦  «         Œq|S )Néd   )ÚrangeÚreadlineÚstripÚNombankInstancerE   r   r   rO   )r   r+   r(   ÚblockÚiÚliner&   s          r    r*   z(NombankCorpusReader._read_instance_block•   s�   € Øˆõ �s‘”ð 	'ð 	'ˆAØ—?’?Ñ$Ô$×*Ò*Ñ,Ô,ˆDØð 'Ý&×,Ò,Ø˜$Ô2°DÔ4Fñô �ð #�? 4Ñ(Ô(ð 'Ø—L’L Ñ&Ô&Ð&øàˆr!   )r
   NNNr   r$   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r0   r4   rM   rR   rT   r*   rV   r!   r    r	   r	      s¹   € € € € € ðð ð" ØØØØð$*ð $*ð $*ð $*ðL
ð 
ð 
ð 
ð	
ð 	
ð 	
ðKð Kð Kð,(ð (ð (ð (ð*	
ð 	
ð 	
ð <MÐ;Lð ð ð ð ð ð r!   r	   c                   ór   — e Zd Z	 d
d„Zed„ ¦   «         Zd„ Zd„ Zd„ Z eed¬¦  «        Z	e
dd	„¦   «         ZdS )r\   Nc
                 ó®   — || _         	 || _        	 || _        	 || _        	 || _        	 || _        	 || _        	 t          |¦  «        | _        	 |	| _	        d S r$   )
ÚfileidÚsentnumÚwordnumr%   ÚsensenumberÚ	predicateÚpredidÚtupleÚ	argumentsr   )
r   rf   rg   rh   r%   ri   rj   rk   rm   r   s
             r    r   zNombankInstance.__init__«   s…   € ð ˆŒð	 ð ˆŒð	&ð ˆŒð	Dð !ˆŒØ,à&ˆÔØ0à"ˆŒð	@ð ˆŒØ*å˜yÑ)Ô)ˆŒð	ð )ˆÔð	-ð 	-r!   c                 ó¤   — | j                              dd¦  «        }|                     dd¦  «                             dd¦  «        }|› d| j        › �S )z¬The name of the roleset used by this instance's predicate.
        Use ``nombank.roleset() <NombankCorpusReader.roleset>`` to
        look up information about the roleset.r8   r7   r:   r;   r9   r6   )r%   rA   ri   )r   Úrs     r    rM   zNombankInstance.rolesetÝ   sV   € ð
 ŒM×!Ò! # {Ñ3Ô3ˆØ�IŠI�f˜lÑ+Ô+×3Ò3°LÐBSÑTÔTˆØÐ(Ð(�dÔ&Ð(Ð(Ð(r!   c                 óN   — d                      | j        | j        | j        ¦  «        S )Nz'<NombankInstance: {}, sent {}, word {}>)Úformatrf   rg   rh   r3   s    r    Ú__repr__zNombankInstance.__repr__æ   s)   € Ø8×?Ò?ØŒKØŒLØŒLñ
ô 
ð 	
r!   c                 óÎ   — d                      | j        | j        | j        | j        | j        ¦  «        }| j        | j        dffz   }t          |¦  «        D ]\  }}|d|› d|› �z  }Œ|S )Nz{} {} {} {} {}ÚrelÚ Ú-)	rq   rf   rg   rh   r%   ri   rm   rj   Úsorted)r   ÚsÚitemsÚarglocÚargids        r    Ú__str__zNombankInstance.__str__í   s„   € Ø×#Ò#ØŒKØŒLØŒLØŒMØÔñ
ô 
ˆð ” 4¤>°5Ð"9Ð!;Ñ;ˆÝ% e™}œ}ð 	&ð 	&‰OˆV�UØÐ%�VÐ%Ð%˜eÐ%Ð%Ñ%ˆAˆAØˆr!   c                 ó¬   — | j         €d S | j        | j                              ¦   «         vrd S | j                              | j        ¦  «        | j                 S r$   )r   rf   rB   Úparsed_sentsrg   r3   s    r    Ú	_get_treezNombankInstance._get_treeú   sQ   € ØÔÐ$Ø�4ØŒ;˜dÔ/×7Ò7Ñ9Ô9Ð9Ð9Ø�4ØÔ ×-Ò-¨d¬kÑ:Ô:¸4¼<ÔHÐHr!   zs
        The parse tree corresponding to this instance, or None if
        the corresponding tree is not available.)Údocc                 ó¾  ‡— |                       ¦   «         }t          |¦  «        dk     rt          d| z  ¦  «        ‚|d d…         \  }}}}}|dd …         Šˆfd„t          ‰¦  «        D ¦   «         }	t          |	¦  «        dk    rt          d| z  ¦  «        ‚|� ||¦  «        }t	          |¦  «        }t	          |¦  «        }|	d                               dd¦  «        \  }
}t
                               |
¦  «        }g }‰D ]J}|                      dd¦  «        \  }}|                     t
                               |¦  «        |f¦  «         ŒKt          |||||||||¦	  «	        S )Né   z Badly formatted nombank line: %ré   c                 óH   •— g | ]\  }}d |v ¯	‰                      |¦  «        ‘ŒS )z-rel)Úpop)Ú.0r^   ÚpÚargss      €r    ú
<listcomp>z)NombankInstance.parse.<locals>.<listcomp>  s,   ø€ ÐFÐFÐF™t˜q !¸&ÀA¸+¸+ˆt�xŠx˜‰{Œ{¸+¸+¸+r!   é   r   rv   )	r@   ÚlenrC   Ú	enumerateÚintÚNombankTreePointerrE   rO   r\   )rx   r   r   Úpiecesrf   rg   rh   r%   ri   rt   Úpredlocrk   rj   rm   Úargrz   r{   rˆ   s                    @r    rE   zNombankInstance.parse  s†  ø€ à—’‘”ˆÝˆv‰;Œ;˜Š?ˆ?ÝÐ?À!ÑCÑDÔDÐDð =CÀ2ÀAÀ2¼JÑ9ˆ�˜' 8¨[à�a�b�bŒzˆØFÐFÐFÐF¥y°¡¤ÐFÑFÔFˆÝˆs‰8Œ8�qŠ=ˆ=ÝÐ?À!ÑCÑDÔDÐDð Ð)Ø'Ð'¨Ñ/Ô/ˆFõ �g‘,”,ˆÝ�g‘,”,ˆð ˜aœ&Ÿ,š, s¨AÑ.Ô.‰ˆ�Ý&×,Ò,¨WÑ5Ô5ˆ	ð ˆ	Øð 	Hð 	HˆCØŸIšI c¨1Ñ-Ô-‰MˆF�EØ×ÒÕ0×6Ò6°vÑ>Ô>ÀÐFÑGÔGÐGÐGõ ØØØØØØØØØñ

ô 

ð 
	
r!   r$   )NN)r`   ra   rb   r   ÚpropertyrM   rr   r|   r   ÚtreeÚstaticmethodrE   rV   r!   r    r\   r\   ª   s¹   € € € € € ð ð0-ð 0-ð 0-ð 0-ðd ð)ð )ñ „Xð)ð
ð 
ð 
ðð ð ðIð Ið Ið ˆ8Øð4ðñ ô €Dð ð+
ð +
ð +
ñ „\ð+
ð +
ð +
r!   r\   c                   ó   — e Zd ZdZd„ ZdS )ÚNombankPointeran  
    A pointer used by nombank to identify one or more constituents in
    a parse tree.  ``NombankPointer`` is an abstract base class with
    three concrete subclasses:

    - ``NombankTreePointer`` is used to point to single constituents.
    - ``NombankSplitTreePointer`` is used to point to 'split'
      constituents, which consist of a sequence of two or more
      ``NombankTreePointer`` pointers.
    - ``NombankChainTreePointer`` is used to point to entire trace
      chains in a tree.  It consists of a sequence of pieces, which
      can be ``NombankTreePointer`` or ``NombankSplitTreePointer`` pointers.
    c                 óB   — | j         t          k    rt          ¦   «         ‚d S r$   )Ú	__class__r–   ÚNotImplementedErrorr3   s    r    r   zNombankPointer.__init__F  s#   € ØŒ>�^Ò+Ð+Ý%Ñ'Ô'Ð'ð ,Ð+r!   N)r`   ra   rb   rc   r   rV   r!   r    r–   r–   7  s-   € € € € € ðð ð(ð (ð (ð (ð (r!   r–   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚNombankChainTreePointerc                 ó   — || _         d S r$   ©r�   ©r   r�   s     r    r   z NombankChainTreePointer.__init__L  s   € ØˆŒð	/ð 	/r!   c                 óJ   — d                      d„ | j        D ¦   «         ¦  «        S )Nr   c              3   ó    K  — | ]	}d |z  V — Œ
dS ©z%sNrV   ©r†   r‡   s     r    ú	<genexpr>z2NombankChainTreePointer.__str__.<locals>.<genexpr>S  ó&   è è € Ð6Ð6 Q˜˜q™Ð6Ð6Ð6Ð6Ð6Ð6r!   ©Újoinr�   r3   s    r    r|   zNombankChainTreePointer.__str__R  ó%   € Ø�xŠxÐ6Ð6¨$¬+Ð6Ñ6Ô6Ñ6Ô6Ð6r!   c                 ó   — d| z  S )Nz<NombankChainTreePointer: %s>rV   r3   s    r    rr   z NombankChainTreePointer.__repr__U  ó   € Ø.°Ñ5Ð5r!   c                 óh   ‡— ‰€t          d¦  «        ‚t          dˆfd„| j        D ¦   «         ¦  «        S )NúParse tree not availablez*CHAIN*c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rV   ©Úselect©r†   r‡   r“   s     €r    r‰   z2NombankChainTreePointer.select.<locals>.<listcomp>[  ó#   ø€ ÐDÐDÐD°1 §¢¨¡¤ÐDÐDÐDr!   ©rC   r   r�   ©r   r“   s    `r    r®   zNombankChainTreePointer.selectX  ó>   ø€ Øˆ<ÝÐ7Ñ8Ô8Ð8Ý�IÐDÐDÐDÐD¸¼ÐDÑDÔDÑEÔEÐEr!   N©r`   ra   rb   r   r|   rr   r®   rV   r!   r    r›   r›   K  sU   € € € € € ð/ð /ð /ð7ð 7ð 7ð6ð 6ð 6ðFð Fð Fð Fð Fr!   r›   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚNombankSplitTreePointerc                 ó   — || _         d S r$   r�   rž   s     r    r   z NombankSplitTreePointer.__init___  s   € ØˆŒð	3ð 	3r!   c                 óJ   — d                      d„ | j        D ¦   «         ¦  «        S )Nú,c              3   ó    K  — | ]	}d |z  V — Œ
dS r¡   rV   r¢   s     r    r£   z2NombankSplitTreePointer.__str__.<locals>.<genexpr>e  r¤   r!   r¥   r3   s    r    r|   zNombankSplitTreePointer.__str__d  r§   r!   c                 ó   — d| z  S )Nz<NombankSplitTreePointer: %s>rV   r3   s    r    rr   z NombankSplitTreePointer.__repr__g  r©   r!   c                 óh   ‡— ‰€t          d¦  «        ‚t          dˆfd„| j        D ¦   «         ¦  «        S )Nr«   z*SPLIT*c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rV   r­   r¯   s     €r    r‰   z2NombankSplitTreePointer.select.<locals>.<listcomp>m  r°   r!   r±   r²   s    `r    r®   zNombankSplitTreePointer.selectj  r³   r!   Nr´   rV   r!   r    r¶   r¶   ^  sU   € € € € € ð3ð 3ð 3ð
7ð 7ð 7ð6ð 6ð 6ðFð Fð Fð Fð Fr!   r¶   c                   óX   — e Zd ZdZd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ ZdS )rŽ   z@
    wordnum:height*wordnum:height*...
    wordnum:height,

    c                 ó"   — || _         || _        d S r$   ©rh   Úheight)r   rh   rÁ   s      r    r   zNombankTreePointer.__init__x  s   € ØˆŒØˆŒˆˆr!   c                 óæ  — |                       d¦  «        }t          |¦  «        dk    rt          d„ |D ¦   «         ¦  «        S |                       d¦  «        }t          |¦  «        dk    rt          d„ |D ¦   «         ¦  «        S |                       d¦  «        }t          |¦  «        dk    rt	          d| z  ¦  «        ‚t          t          |d	         ¦  «        t          |d         ¦  «        ¦  «        S )
Nr   rŠ   c                 óB   — g | ]}t                                |¦  «        ‘ŒS rV   ©rŽ   rE   ©r†   Úelts     r    r‰   z,NombankTreePointer.parse.<locals>.<listcomp>‚  ó'   € ÐAÐAÐA°3Õ#×)Ò)¨#Ñ.Ô.ÐAÐAÐAr!   r¹   c                 óB   — g | ]}t                                |¦  «        ‘ŒS rV   rÄ   rÅ   s     r    r‰   z,NombankTreePointer.parse.<locals>.<listcomp>‰  rÇ   r!   ú:é   zbad nombank pointer %rr   )r@   r‹   r›   r¶   rC   rŽ   r�   )rx   r�   s     r    rE   zNombankTreePointer.parse|  sâ   € ð —’˜‘”ˆÝˆv‰;Œ;˜Š?ˆ?Ý*ØAÐA¸&ÐAÑAÔAñô ð ð
 —’˜‘”ˆÝˆv‰;Œ;˜Š?ˆ?Ý*ØAÐA¸&ÐAÑAÔAñô ð ð
 —’˜‘”ˆÝˆv‰;Œ;˜!ÒÐÝÐ5¸Ñ9Ñ:Ô:Ð:Ý!¥# f¨Q¤i¡.¤.µ#°f¸Q´i±.´.ÑAÔAÐAr!   c                 ó$   — | j         › d| j        › �S )NrÉ   rÀ   r3   s    r    r|   zNombankTreePointer.__str__’  s   € Ø”,Ð.Ð. ¤Ð.Ð.Ð.r!   c                 ó$   — d| j         | j        fz  S )NzNombankTreePointer(%d, %d)rÀ   r3   s    r    rr   zNombankTreePointer.__repr__•  s   € Ø+¨t¬|¸T¼[Ð.IÑIÐIr!   c                 óþ   — t          |t          t          f¦  «        r)|j        d         }t          |t          t          f¦  «        °)t          |t          ¦  «        s| |u S | j        |j        k    o| j        |j        k    S ©Nr   )r   r›   r¶   r�   rŽ   rh   rÁ   ©r   Úothers     r    Ú__eq__zNombankTreePointer.__eq__˜  s}   € Ý˜Õ!8Õ:QÐ RÑSÔSð 	$Ø”L ”OˆEõ ˜Õ!8Õ:QÐ RÑSÔSð 	$õ ˜%Õ!3Ñ4Ô4ð 	!Ø˜5�=Ð àŒ|˜uœ}Ò,ÐL°´ÀÄÒ1LÐLr!   c                 ó   — | |k     S r$   rV   rÏ   s     r    Ú__ne__zNombankTreePointer.__ne__¡  s   € Ø˜5’=Ð Ð r!   c                 ó6  — t          |t          t          f¦  «        r)|j        d         }t          |t          t          f¦  «        °)t          |t          ¦  «        s t          | ¦  «        t          |¦  «        k     S | j        | j         f|j        |j         fk     S rÎ   )r   r›   r¶   r�   rŽ   r?   rh   rÁ   rÏ   s     r    Ú__lt__zNombankTreePointer.__lt__¤  sŽ   € Ý˜Õ!8Õ:QÐ RÑSÔSð 	$Ø”L ”OˆEõ ˜Õ!8Õ:QÐ RÑSÔSð 	$õ ˜%Õ!3Ñ4Ô4ð 	(Ý�d‘8”8�b ™iœiÒ'Ð'à”˜tœ{˜lÐ+¨u¬}¸u¼|¸mÐ.LÒLÐLr!   c                 óZ   — |€t          d¦  «        ‚||                      |¦  «                 S )Nr«   )rC   Útreeposr²   s     r    r®   zNombankTreePointer.select­  s-   € Øˆ<ÝÐ7Ñ8Ô8Ð8Ø�D—L’L Ñ&Ô&Ô'Ð'r!   c                 ó€  — |€t          d¦  «        ‚|g}g }d}	 t          |d         t          ¦  «        r¶t          |¦  «        t          |¦  «        k     r|                     d¦  «         n|dxx         dz  cc<   |d         t          |d         ¦  «        k     r(|                     |d         |d                  ¦  «         n||                     ¦   «          |                     ¦   «          nS|| j        k    r/t          |dt          |¦  «        | j        z
  dz
  …         ¦  «        S |dz  }|                     ¦   «          �Œ&)z}
        Convert this pointer to a standard 'tree position' pointer,
        given that it points to the given tree.
        Nr«   r   TéÿÿÿÿrŠ   )	rC   r   r   r‹   rO   r…   rh   rl   rÁ   )r   r“   Ústackr×   rh   s        r    r×   zNombankTreePointer.treepos²  s4  € ð
 ˆ<ÝÐ7Ñ8Ô8Ð8Ø�ˆØˆàˆð	 å˜% œ)¥TÑ*Ô*ð  å�w‘<”<¥# e¡*¤*Ò,Ð,Ø—N’N 1Ñ%Ô%Ð%Ð%à˜B�K�K”K 1Ñ$�K�K‘Kà˜2”;¥ U¨2¤Y¡¤Ò/Ð/Ø—L’L  r¤¨7°2¬;Ô!7Ñ8Ô8Ð8Ð8ð —I’I‘K”K�KØ—K’K‘M”M�M�Mð ˜dœlÒ*Ð*Ý  Ð)I­3¨w©<¬<¸$¼+Ñ+EÈÑ+IÐ)IÔ!JÑKÔKÐKà˜q‘L�GØ—I’I‘K”K�Kñ+	 r!   N)r`   ra   rb   rc   r   r”   rE   r|   rr   rÑ   rÓ   rÕ   r®   r×   rV   r!   r    rŽ   rŽ   p  s½   € € € € € ðð ðð ð ð ðBð Bñ „\ðBð*/ð /ð /ðJð Jð JðMð Mð Mð!ð !ð !ðMð Mð Mð(ð (ð (ð
  ð   ð   ð   ð   r!   rŽ   N)Ú	functoolsr   Ú	xml.etreer   Únltk.corpus.reader.apiÚnltk.corpus.reader.utilÚnltk.internalsr   Ú	nltk.treer   r   r	   r\   r–   r›   r¶   rŽ   rV   r!   r    ú<module>rá      s¡  ðð %Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !à $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð ðPð Pð Pð Pð P˜,ñ Pô Pð PðpJ
ð J
ð J
ð J
ð J
ñ J
ô J
ð J
ðZ(ð (ð (ð (ð (ñ (ô (ð (ð(Fð Fð Fð Fð F˜nñ Fô Fð Fð&Fð Fð Fð Fð F˜nñ Fô Fð Fð$ ða ð a ð a ð a ð a ˜ñ a ô a ñ „ða ð a ð a r!   