+
    ÖÇÜh¢=  ã                   óÔ   € ^ RI Ht ^ RIHt ^ RI5 ^ RI5 ^ RIHt ^ RIH	t	  ! R R]
4      t ! R R	4      t ! R
 R4      t ! R R]4      t ! R R]4      t] ! R R]4      4       tR# )é    )Útotal_ordering)ÚElementTree)Ú*)Úraise_unorderable_types)ÚTreec                   ób   a € ] tR t^t o RtRR ltRR ltR tR tRR lt	R t
R	 3R
 ltRtV tR# )ÚNombankCorpusReaderah  
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.
Nc                óÎ   € \        V\        4      '       d   \        W4      V n        \	        V4      V n        \
        P                  WW74       W n        W@n        WPn	        W`n
        R# )ar  
: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   &&&&&&&&Ú</usr/lib/python3/dist-packages/nltk/corpus/reader/nombank.pyr   ÚNombankCorpusReader.__init__    sQ   € ô4 �j¤#×&Ò&Ü/°ÓAˆDŒMÜ˜ZÓ(ˆŒä×Ñ˜d¨*Ô?ð  ŒØ#ŒØ#5Ô Ø)Öó    c                ó°   a aa€ / oSe
   V3R lSR&   \        S P                  S P                  4      VV 3R lS P                  S P                  4      R7      # )zq
:return: a corpus view that acts as a list of
    ``NombankInstance`` objects, one for each noun in the corpus.
c                 ó"   <€ V P                   S8H  # ©N)Úbaseform)Úinstr$   s   &€r   Ú<lambda>Ú/NombankCorpusReader.instances.<locals>.<lambda>M   s   ø€ °T·]±]ÀhÒ5Nr    Úinstance_filterc                 ó*   <€ SP                   ! V 3/ SB # r#   )Ú_read_instance_block)ÚstreamÚkwargsr   s   &€€r   r&   r'   P   s   ø€ ˜4×4Ò4°VÑF¸vÒFr    ©r   )ÚStreamBackedCorpusViewÚabspathr   r   )r   r$   r,   s   ff@r   Ú	instancesÚNombankCorpusReader.instancesF   sK   ú€ ð
 ˆØÒÜ(NˆFÐ$Ñ%Ü%Ø�L‰L˜Ÿ™Ó'ÝFØ—]‘] 4§=¡=Ó1ô
ð 	
r    c                óŠ   € \        V P                  V P                  4      \        V P	                  V P                  4      R7      # )zy
: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   ÚlinesÚNombankCorpusReader.linesT   s4   € ô
 &Ø�L‰L˜Ÿ™Ó'ÜØ—]‘] 4§=¡=Ó1ô
ð 	
r    c                óP  € VP                  R4      ^ ,          pVP                  RR4      pVP                  RR4      P                  RR4      pRV,          pW0P                  4       9  d   \        RV,          4      hV P	                  V4      P                  4       ;_uu_ 4       p\        P                  ! V4      P                  4       pR	R	R	4       XP                  R
4       F  pVP                  R,          V8X  g   K  Vu # 	  \        RV RV 24      h  + '       g   i     LU; i)z5
:return: the xml description for the given roleset.
Ú.ú	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   rO   ÚNombankCorpusReader.roleset_   sþ   € ð ×#Ñ# CÓ(¨Õ+ˆØ×#Ñ# K°Ó5ˆØ×#Ñ#Ð$5°vÓ>×FÑFØ�Ló
ˆð $ hÕ.ˆ	ØŸL™L›NÔ*ÜÐ=À
ÕJÓKÐKð �\‰\˜)Ó$×)Ñ)×+Ô+¨rÜ×%Ò% bÓ)×1Ñ1Ó3ˆE÷ ,à—}‘}Ð%8Ö9ˆGØ�~‰~˜dÕ# zÖ1Ø’ñ :ô ˜8 J <¨~¸i¸[ÐIÓJÐJ÷ ,×+ús   Â#%DÄD%	c                óÊ  € Ve4   RV,          pW P                  4       9  d   \        RV,          4      hV.pMV P                  4       p. pV Fw  pV P                  V4      P                  4       ;_uu_ 4       p\        P
                  ! V4      P                  4       pRRR4       VP                  XP                  R4      4       Ky  	  \        V4      #   + '       g   i     L?; i)z1
:return: list of xml descriptions for rolesets.
Nr>   r?   r@   )
rD   rE   r/   rF   r   rG   rH   ÚappendrI   ÚLazyConcatenation)r   r$   rL   r   ÚrsetsrM   rN   s   &&     r   ÚrolesetsÚNombankCorpusReader.rolesetsu   s¸   € ð ÒØ'¨(Õ2ˆIØ§¡£Ô.Ü Ð!AÀHÕ!LÓMÐMØ#˜‰JàŸ™›ˆJàˆÛ#ˆIð —‘˜iÓ(×-Ñ-×/Ô/°2Ü#×)Ò)¨"Ó-×5Ñ5Ó7�÷ 0à�L‰L˜Ÿ™Ð':Ó;Ö<ñ $ô ! Ó'Ð'÷ 0×/ús   Á6%CÃC"c                óŠ   € \        V P                  V P                  4      \        V P	                  V P                  4      R7      # )zu
: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   r3   r   r4   s   &r   ÚnounsÚNombankCorpusReader.nounsŠ   s4   € ô
 &Ø�L‰L˜Ÿ™Ó)ÜØ—]‘] 4§?¡?Ó3ô
ð 	
r    c                ó   € R # )T© )r%   s   &r   r&   ÚNombankCorpusReader.<lambda>•   s   € Ér    c                ó  € . p\        ^d4       Fv  pVP                  4       P                  4       pV'       g   K+  \        P	                  WPP
                  V P                  4      pV! V4      '       g   Ke  VP                  V4       Kx  	  V# )éd   )ÚrangeÚreadlineÚstripÚNombankInstancerG   r   r   rR   )r   r+   r(   ÚblockÚiÚliner%   s   &&&    r   r*   Ú(NombankCorpusReader._read_instance_block•   sr   € Øˆô �s–ˆAØ—?‘?Ó$×*Ñ*Ó,ˆDß‰tÜ&×,Ñ,Ø×2Ñ2°D×4FÑ4Fó�ñ # 4×(Ô(Ø—L‘L Ö&ñ ð ˆr    )r   r   r   r   r   )Ú NNNÚutf8r#   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r0   r5   rO   rU   rX   r*   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r	   r	      s:   ø‡ € ñô$*ôL
ò	
òKô,(ò*	
ñ <M÷ ò r    r	   c                   ót   a € ] tR t^ªt o RR lt]R 4       tR tR tR t	]! ]	RR7      t
]RR	 l4       tR
tV tR# )rb   Nc
                ó–   € Wn          W n         W0n         W@n         WPn         W`n         Wpn         \        V4      V n         W�n	        R # r#   )
ÚfileidÚsentnumÚwordnumr$   ÚsensenumberÚ	predicateÚpredidÚtupleÚ	argumentsr   )
r   rt   ru   rv   r$   rw   rx   ry   r{   r   s
   &&&&&&&&&&r   r   ÚNombankInstance.__init__«   sm   € ð Œð	 ð Œð	&ð Œð	Dð !ŒØ,à&ÔØ0à"Œð	@ð ŒØ*ä˜yÓ)ˆŒð	ð )Ôñ	-r    c                ó    € V P                   P                  RR4      pVP                  RR4      P                  RR4      pV RV P                   2# )zœThe name of the roleset used by this instance's predicate.
Use ``nombank.roleset() <NombankCorpusReader.roleset>`` to
look up information about the roleset.r:   r9   r<   r=   r;   r8   )r$   rC   rw   )r   Úrs   & r   rO   ÚNombankInstance.rolesetÜ   sP   € ð
 �M‰M×!Ñ! # {Ó3ˆØ�I‰I�f˜lÓ+×3Ñ3°LÐBSÓTˆØ��A�d×&Ñ&Ð'Ð(Ð(r    c                ód   € R P                  V P                  V P                  V P                  4      # )z'<NombankInstance: {}, sent {}, word {}>)Úformatrt   ru   rv   r4   s   &r   Ú__repr__ÚNombankInstance.__repr__å   s*   € Ø8×?Ñ?Ø�K‰KØ�L‰LØ�L‰Ló
ð 	
r    c                ó  € R P                  V P                  V P                  V P                  V P                  V P
                  4      pV P                  V P                  R33,           p\        V4       F  w  r4VRV RV 2,          pK  	  V# )z{} {} {} {} {}ÚrelÚ Ú-)	r�   rt   ru   rv   r$   rw   r{   rx   Úsorted)r   ÚsÚitemsÚarglocÚargids   &    r   Ú__str__ÚNombankInstance.__str__ì   s   € Ø×#Ñ#Ø�K‰KØ�L‰LØ�L‰LØ�M‰MØ×Ñó
ˆð —‘ 4§>¡>°5Ð"9Ð!;Õ;ˆÜ# Ež]‰MˆFØ�1�V�H˜A˜e˜WÐ%Õ%ŠAñ +àˆr    c                óä   € V P                   f   R # V P                  V P                   P                  4       9  d   R # V P                   P                  V P                  4      V P                  ,          # r#   )r   rt   rD   Úparsed_sentsru   r4   s   &r   Ú	_get_treeÚNombankInstance._get_treeù   sS   € Ø×ÑÒ$ÙØ�;‰;˜d×/Ñ/×7Ñ7Ó9Ô9ÙØ× Ñ ×-Ñ-¨d¯k©kÓ:¸4¿<¹<ÕHÐHr    zs
        The parse tree corresponding to this instance, or None if
        the corresponding tree is not available.)Údocc                ó¤  € V P                  4       p\        V4      ^8  d   \        RV ,          4      hVR,          w  rErgpVR,          p	\        V	4       U
Uu. uF  w  r«RV9   g   K  V	P	                  V
4      NK!  	  pp
p\        V4      ^8w  d   \        RV ,          4      hVe	   V! V4      p\        V4      p\        V4      pV^ ,          P                  R^4      w  rÞ\        P                  V4      p. pV	 F>  pVP                  R^4      w  ppVP                  \        P                  V4      V34       K@  	  \        VVVVVVVVV4	      # u upp
i )é   z Badly formatted nombank line: %r:Né   N:r–   NNz-relr‡   )
rB   ÚlenrE   Ú	enumerateÚpopÚintÚNombankTreePointerrG   rR   rb   )r‰   r   r   Úpiecesrt   ru   rv   r$   rw   Úargsrd   Úpr…   Úpredlocry   rx   r{   Úargr‹   rŒ   s   &&&                 r   rG   ÚNombankInstance.parse  sM  € à—‘“ˆÜˆv‹;˜Œ?ÜÐ?À!ÕCÓDÐDð =CÀ2½JÑ9ˆ˜'¨[à�b�zˆÜ'0°¤ÔF¡™t˜q¸&ÀA¹+Œ{ˆt�x‰x˜Ž{¡ˆÑFÜˆs‹8�qŒ=ÜÐ?À!ÕCÓDÐDð Ò)Ù'¨Ó/ˆFô �g“,ˆÜ�g“,ˆð ˜a�&Ÿ,™, s¨AÓ.‰ˆÜ&×,Ñ,¨WÓ5ˆ	ð ˆ	ÛˆCØŸI™I c¨1Ó-‰MˆF�EØ×ÑÔ0×6Ñ6°vÓ>ÀÐFÖGñ ô
 ØØØØØØØØØó

ð 
	
ùó1 Gs   ÁEÁ'E)	r{   r$   rt   r   rx   ry   rw   ru   rv   r#   )NN)ri   rj   rk   rl   r   ÚpropertyrO   r‚   r�   r‘   ÚtreeÚstaticmethodrG   rn   ro   rp   s   @r   rb   rb   ª   sW   ø‡ € ô/-ðb ñ)ó ð)ò
òòIñ Øð4ô€Dð ó+
ó ö+
r    rb   c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚNombankPointeri6  aB  
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                óD   € V P                   \        8X  d   \        4       hR # r#   )Ú	__class__r¦   ÚNotImplementedErrorr4   s   &r   r   ÚNombankPointer.__init__E  s   € Ø�>‰>œ^Ô+Ü%Ó'Ð'ñ ,r    r[   N)ri   rj   rk   rl   rm   r   rn   ro   rp   s   @r   r¦   r¦   6  s   ø‡ € ñ÷(ð (r    r¦   c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚNombankChainTreePointeriJ  c                ó   € Wn         R # r#   ©rœ   ©r   rœ   s   &&r   r   Ú NombankChainTreePointer.__init__K  s   € ØŒñ	/r    c                óF   € R P                  R V P                   4       4      # )r   c              3   ó4   "  € T F  pR V,          x € K  	  R# 5i©z%sNr[   ©Ú.0rž   s   & r   Ú	<genexpr>Ú2NombankChainTreePointer.__str__.<locals>.<genexpr>R  ó   é € Ð6©+ Q˜˜qŸš«+ùó   ‚©Újoinrœ   r4   s   &r   r�   ÚNombankChainTreePointer.__str__Q  ó   € Ø�x‰xÑ6¨$¯+ª+Ó6Ó6Ð6r    c                ó   € R V ,          # )z<NombankChainTreePointer: %s>r[   r4   s   &r   r‚   Ú NombankChainTreePointer.__repr__T  ó   € Ø.°Õ5Ð5r    c           	     ó’   € Vf   \        R4      h\        RV P                   Uu. uF  q"P                  V4      NK  	  up4      # u upi )NúParse tree not availablez*CHAIN*©rE   r   rœ   Úselect©r   r£   rž   s   && r   rÄ   ÚNombankChainTreePointer.selectW  ó<   € ØŠ<ÜÐ7Ó8Ð8Ü�I¸¿ºÓD¹°1§¡¨¦¹ÑDÓEÐEùÒDó   ¤A
r®   N©
ri   rj   rk   rl   r   r�   r‚   rÄ   rn   ro   rp   s   @r   r¬   r¬   J  s    ø‡ € ò/ò7ò6÷Fð Fr    r¬   c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚNombankSplitTreePointeri]  c                ó   € Wn         R # r#   r®   r¯   s   &&r   r   Ú NombankSplitTreePointer.__init__^  s   € ØŒñ	3r    c                óF   € R P                  R V P                   4       4      # )Ú,c              3   ó4   "  € T F  pR V,          x € K  	  R# 5ir³   r[   r´   s   & r   r¶   Ú2NombankSplitTreePointer.__str__.<locals>.<genexpr>d  r¸   r¹   rº   r4   s   &r   r�   ÚNombankSplitTreePointer.__str__c  r½   r    c                ó   € R V ,          # )z<NombankSplitTreePointer: %s>r[   r4   s   &r   r‚   Ú NombankSplitTreePointer.__repr__f  rÀ   r    c           	     ó’   € Vf   \        R4      h\        RV P                   Uu. uF  q"P                  V4      NK  	  up4      # u upi )NrÂ   z*SPLIT*rÃ   rÅ   s   && r   rÄ   ÚNombankSplitTreePointer.selecti  rÇ   rÈ   r®   NrÉ   rp   s   @r   rË   rË   ]  s    ø‡ € ò3ò
7ò6÷Fð Fr    rË   c                   ód   a € ] tR tRt o RtR t]R 4       tR tR t	R t
R tR	 tR
 tR tRtV tR# )r›   io  z4
wordnum:height*wordnum:height*...
wordnum:height,

c                ó   € Wn         W n        R # r#   ©rv   Úheight)r   rv   rÚ   s   &&&r   r   ÚNombankTreePointer.__init__w  s   € ØŒØŽr    c                ó  € V P                  R 4      p\        V4      ^8”  d/   \        V Uu. uF  p\        P	                  V4      NK  	  up4      # V P                  R4      p\        V4      ^8”  d/   \        V Uu. uF  p\        P	                  V4      NK  	  up4      # V P                  R4      p\        V4      ^8w  d   \        RV ,          4      h\        \        V^ ,          4      \        V^,          4      4      # u upi u upi )r   rÏ   Ú:zbad nombank pointer %r)rB   r—   r¬   r›   rG   rË   rE   rš   )r‰   rœ   Úelts   &  r   rG   ÚNombankTreePointer.parse{  sá   € ð —‘˜“ˆÜˆv‹;˜Œ?Ü*Ù:@ÓA¹&°3Ô#×)Ñ)¨#Ö.¹&ÑAóð ð
 —‘˜“ˆÜˆv‹;˜Œ?Ü*Ù:@ÓA¹&°3Ô#×)Ñ)¨#Ö.¹&ÑAóð ð
 —‘˜“ˆÜˆv‹;˜!ÔÜÐ5¸Õ9Ó:Ð:Ü!¤# f¨Q¥i£.´#°f¸Qµi³.ÓAÐAùò Bùò Bs   «C>Á:Dc                ó8   € V P                    R V P                   2# )rÝ   rÙ   r4   s   &r   r�   ÚNombankTreePointer.__str__‘  s   € Ø—,‘,�˜q §¡ Ð.Ð.r    c                ó@   € R V P                   V P                  3,          # )zNombankTreePointer(%d, %d)rÙ   r4   s   &r   r‚   ÚNombankTreePointer.__repr__”  s   € Ø+¨t¯|©|¸T¿[¹[Ð.IÕIÐIr    c                ó
  € \        V\        \        34      '       d   VP                  ^ ,          pK1  \        V\        4      '       g   WJ # V P
                  VP
                  8H  ;'       d    V P                  VP                  8H  # ©r   )r   r¬   rË   rœ   r›   rv   rÚ   ©r   Úothers   &&r   Ú__eq__ÚNombankTreePointer.__eq__—  sa   € Ü˜Ô!8Ô:QÐ R×SÒSØ—L‘L •OŠEä˜%Ô!3×4Ò4Ø�=Ð à�|‰|˜uŸ}™}Ñ,×LÐL°·±ÀÇÁÑ1LÐLr    c                ó   € W8X  * # r#   r[   ræ   s   &&r   Ú__ne__ÚNombankTreePointer.__ne__   s   € ØÒ Ð r    c                ó$  € \        V\        \        34      '       d   VP                  ^ ,          pK1  \        V\        4      '       g   \        V 4      \        V4      8  # V P                  V P                  ) 3VP                  VP                  ) 38  # rå   )r   r¬   rË   rœ   r›   rA   rv   rÚ   ræ   s   &&r   Ú__lt__ÚNombankTreePointer.__lt__£  sm   € Ü˜Ô!8Ô:QÐ R×SÒSØ—L‘L •OŠEä˜%Ô!3×4Ò4Ü�d“8œb ›iÑ'Ð'à—‘˜tŸ{™{˜lÐ+¨u¯}©}¸u¿|¹|¸mÐ.LÑLÐLr    c                óN   € Vf   \        R4      hWP                  V4      ,          # )NrÂ   )rE   Útreepos)r   r£   s   &&r   rÄ   ÚNombankTreePointer.select¬  s%   € ØŠ<ÜÐ7Ó8Ð8Ø—L‘L Ó&Õ'Ð'r    c                óp  € Vf   \        R4      hV.p. p^ p \        VR,          \        4      '       d©   \        V4      \        V4      8  d   VP	                  ^ 4       MVR;;,          ^,          uu&   VR,          \        VR,          4      8  d)   VP	                  VR,          VR,          ,          4       K¤  VP                  4        VP                  4        KÆ  W@P                  8X  d0   \        VR\        V4      V P                  ,
          ^,
           4      # V^,          pVP                  4        EK!  )ze
Convert this pointer to a standard 'tree position' pointer,
given that it points to the given tree.
NrÂ   éÿÿÿÿ)	rE   r   r   r—   rR   r™   rv   rz   rÚ   )r   r£   Ústackrñ   rv   s   &&   r   rñ   ÚNombankTreePointer.treepos±  sè   € ð
 Š<ÜÐ7Ó8Ð8Ø�ˆØˆàˆØä˜% �)¤T×*Ò*ä�w“<¤# e£*Ô,Ø—N‘N 1Õ%à˜B—K 1Õ$“Kà˜2•;¤ U¨2¥Y£Ô/Ø—L‘L  r¥¨7°2­;Õ!7Ö8ð —I‘I”KØ—K‘K–Mð Ÿl™lÔ*Ü  Ð)I¬3¨w«<¸$¿+¹+Õ+EÈÕ+IÐ!JÓKÐKà˜q•L�GØ—I‘I—Kr    )rÚ   rv   N)ri   rj   rk   rl   rm   r   r¤   rG   r�   r‚   rè   rë   rî   rÄ   rñ   rn   ro   rp   s   @r   r›   r›   o  sP   ø‡ € ñòð ñBó ðBò*/òJòMò!òMò(÷
  ð   r    r›   N)Ú	functoolsr   Ú	xml.etreer   Únltk.corpus.reader.apiÚnltk.corpus.reader.utilÚnltk.internalsr   Ú	nltk.treer   r   r	   rb   r¦   r¬   rË   r›   r[   r    r   Ú<module>rý      sy   ðõ %Ý !ä $Ü %Ý 2Ý ôP˜,ô P÷pI
ñ I
÷X(ñ (ô(F˜nô Fô&F˜nô Fð$ ôa ˜ó a ó òa r    