§
    'ê[fW  ã                   ó¸   — d Z ddlZddlT ddlT ddlmZ ddlmZ ddlm	Z	m
Z
  G d„ de¦  «        Z G d	„ d
¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )z!
Read CoNLL-style chunk fileids.
é    N)Ú*)Úmap_tag)ÚTree)ÚLazyConcatenationÚLazyMapc                   ó  — e Zd ZdZdZdZdZdZdZdZ	dZ
eeeeee	e
fZd	d
ddded	d	fd„Zd%d„Zd%d„Zd&d„Zd&d„Zd'd„Zd'd„Zd'd„Zd%d„Zd(d„Zd&d„Zd&d„Zd%d„Zd„ Zd„ Zd%d„Zd%d„Zd%d„Zd%d „Zd!„ Z d"„ Z!d#„ Z"e#d$„ ¦   «         Z$d	S ))ÚConllCorpusReaderaØ  
    A corpus reader for CoNLL-style files.  These files consist of a
    series of sentences, separated by blank lines.  Each sentence is
    encoded using a table (or "grid") of values, where each line
    corresponds to a single word, and each column corresponds to an
    annotation type.  The set of columns used by CoNLL-style files can
    vary from corpus to corpus; the ``ConllCorpusReader`` constructor
    therefore takes an argument, ``columntypes``, which is used to
    specify the columns that are used by a given corpus. By default
    columns are split by consecutive whitespaces, with the
    ``separator`` argument you can set a string to split by (e.g.
    ``'	'``).


    @todo: Add support for reading from corpora where different
        parallel files contain different columns.
    @todo: Possibly add caching of the grid corpus view?  This would
        allow the same grid view to be used by different data access
        methods (eg words() and parsed_sents() could both share the
        same grid corpus view object).
    @todo: Better support for -DOCSTART-.  Currently, we just ignore
        it, but it could be used to define methods that retrieve a
        document at a time (eg parsed_documents()).
    ÚwordsÚposÚtreeÚchunkÚneÚsrlÚignoreNÚSFTÚutf8c                 óN  — |D ]}|| j         vrt          d|z  ¦  «        ‚Œt          |t          ¦  «        r|g}|| _        d„ t          |¦  «        D ¦   «         | _        || _        || _        || _	        |	| _
        t                               | |||¦  «         |
| _        || _        d S )NzBad column type %rc                 ó   — i | ]\  }}||“Œ	S © r   )Ú.0ÚiÚcs      úL/var/www/piapp/venv/lib/python3.11/site-packages/nltk/corpus/reader/conll.pyú
<dictcomp>z.ConllCorpusReader.__init__.<locals>.<dictcomp>W   s   € ÐBÐBÐB¡ ! Q˜˜1ÐBÐBÐBó    )ÚCOLUMN_TYPESÚ
ValueErrorÚ
isinstanceÚstrÚ_chunk_typesÚ	enumerateÚ_colmapÚ_pos_in_treeÚ_root_labelÚ_srl_includes_rolesetÚ_tree_classÚCorpusReaderÚ__init__Ú_tagsetÚsep)ÚselfÚrootÚfileidsÚcolumntypesÚchunk_typesÚ
root_labelÚpos_in_treeÚsrl_includes_rolesetÚencodingÚ
tree_classÚtagsetÚ	separatorÚ
columntypes                r   r(   zConllCorpusReader.__init__C   sÆ   € ð &ð 	Dð 	DˆJØ Ô!2Ð2Ð2Ý Ð!5¸
Ñ!BÑCÔCÐCð 3å�k¥3Ñ'Ô'ð 	(Ø&˜-ˆKØ'ˆÔØBÐB­9°[Ñ+AÔ+AÐBÑBÔBˆŒØ'ˆÔØ%ˆÔØ%9ˆÔ"Ø%ˆÔÝ×Ò˜d D¨'°8Ñ<Ô<Ð<ØˆŒØˆŒˆˆr   c                 ó    — |                       | j        ¦  «         t          t          | j        |                      |¦  «        ¦  «        ¦  «        S ©N)Ú_requireÚWORDSr   r   Ú
_get_wordsÚ_grids©r+   r-   s     r   r
   zConllCorpusReader.wordsd   s<   € Ø�Š�d”jÑ!Ô!Ð!Ý ¥¨¬¸$¿+º+ÀgÑ:NÔ:NÑ!OÔ!OÑPÔPÐPr   c                 ó†   — |                       | j        ¦  «         t          | j        |                      |¦  «        ¦  «        S r9   )r:   r;   r   r<   r=   r>   s     r   ÚsentszConllCorpusReader.sentsh   s4   € Ø�Š�d”jÑ!Ô!Ð!Ý�t”¨¯ª°GÑ(<Ô(<Ñ=Ô=Ð=r   c                 ó²   ‡ ‡— ‰                       ‰ j        ‰ j        ¦  «         ˆ ˆfd„}t          t	          |‰                      |¦  «        ¦  «        ¦  «        S )Nc                 ó0   •— ‰                      | ‰¦  «        S r9   ©Ú_get_tagged_words©Úgridr+   r5   s    €€r   Úget_tagged_wordsz8ConllCorpusReader.tagged_words.<locals>.get_tagged_wordso   ó   ø€ Ø×)Ò)¨$°Ñ7Ô7Ð7r   )r:   r;   ÚPOSr   r   r=   ©r+   r-   r5   rG   s   ` ` r   Útagged_wordszConllCorpusReader.tagged_wordsl   sa   øø€ Ø�Š�d”j $¤(Ñ+Ô+Ð+ð	8ð 	8ð 	8ð 	8ð 	8ð 	8õ !¥Ð)9¸4¿;º;ÀwÑ;OÔ;OÑ!PÔ!PÑQÔQÐQr   c                 ó˜   ‡ ‡— ‰                       ‰ j        ‰ j        ¦  «         ˆ ˆfd„}t          |‰                      |¦  «        ¦  «        S )Nc                 ó0   •— ‰                      | ‰¦  «        S r9   rC   rE   s    €€r   rG   z8ConllCorpusReader.tagged_sents.<locals>.get_tagged_wordsw   rH   r   )r:   r;   rI   r   r=   rJ   s   ` ` r   Útagged_sentszConllCorpusReader.tagged_sentst   sY   øø€ Ø�Š�d”j $¤(Ñ+Ô+Ð+ð	8ð 	8ð 	8ð 	8ð 	8ð 	8õ Ð'¨¯ª°WÑ)=Ô)=Ñ>Ô>Ð>r   c                 óÔ   ‡ ‡‡— ‰                       ‰ j        ‰ j        ‰ j        ¦  «         ‰€‰ j        Šˆˆ ˆfd„}t          t          |‰                      |¦  «        ¦  «        ¦  «        S )Nc                 ó2   •— ‰                      | ‰‰¦  «        S r9   ©Ú_get_chunked_words©rF   r/   r+   r5   s    €€€r   Úget_chunked_wordsz:ConllCorpusReader.chunked_words.<locals>.get_chunked_words�   ó   ø€ Ø×*Ò*¨4°¸fÑEÔEÐEr   )r:   r;   rI   ÚCHUNKr    r   r   r=   ©r+   r-   r/   r5   rT   s   ` `` r   Úchunked_wordszConllCorpusReader.chunked_words|   s€   øøø€ Ø�Š�d”j $¤(¨D¬JÑ7Ô7Ð7ØÐØÔ+ˆKð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fõ !¥Ð):¸D¿KºKÈÑ<PÔ<PÑ!QÔ!QÑRÔRÐRr   c                 óº   ‡ ‡‡— ‰                       ‰ j        ‰ j        ‰ j        ¦  «         ‰€‰ j        Šˆˆ ˆfd„}t          |‰                      |¦  «        ¦  «        S )Nc                 ó2   •— ‰                      | ‰‰¦  «        S r9   rQ   rS   s    €€€r   rT   z:ConllCorpusReader.chunked_sents.<locals>.get_chunked_words‹   rU   r   )r:   r;   rI   rV   r    r   r=   rW   s   ` `` r   Úchunked_sentszConllCorpusReader.chunked_sents†   sx   øøø€ Ø�Š�d”j $¤(¨D¬JÑ7Ô7Ð7ØÐØÔ+ˆKð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fõ Ð(¨$¯+ª+°gÑ*>Ô*>Ñ?Ô?Ð?r   c                 óº   ‡ ‡‡— ‰                       ‰ j        ‰ j        ‰ j        ¦  «         ‰€‰ j        Šˆˆ ˆfd„}t          |‰                      |¦  «        ¦  «        S )Nc                 ó2   •— ‰                      | ‰‰¦  «        S r9   )Ú_get_parsed_sent)rF   r1   r+   r5   s    €€€r   Úget_parsed_sentz7ConllCorpusReader.parsed_sents.<locals>.get_parsed_sent•   s   ø€ Ø×(Ò(¨¨{¸FÑCÔCÐCr   )r:   r;   rI   ÚTREEr#   r   r=   )r+   r-   r1   r5   r_   s   ` `` r   Úparsed_sentszConllCorpusReader.parsed_sents�   sw   øøø€ Ø�Š�d”j $¤(¨D¬IÑ6Ô6Ð6ØÐØÔ+ˆKð	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dõ �¨¯ª°GÑ(<Ô(<Ñ=Ô=Ð=r   c                 ó†   — |                       | j        ¦  «         t          | j        |                      |¦  «        ¦  «        S r9   )r:   ÚSRLr   Ú_get_srl_spansr=   r>   s     r   Ú	srl_spanszConllCorpusReader.srl_spansš   s5   € Ø�Š�d”hÑÔÐÝ�tÔ*¨D¯KªK¸Ñ,@Ô,@ÑAÔAÐAr   c                 óè   ‡ ‡— ‰                       ‰ j        ‰ j        ‰ j        ‰ j        ¦  «         ‰€‰ j        Šˆˆ fd„}t          |‰                      |¦  «        ¦  «        }|rt          |¦  «        }|S )Nc                 ó0   •— ‰                      | ‰¦  «        S r9   )Ú_get_srl_instances)rF   r1   r+   s    €€r   Úget_srl_instancesz:ConllCorpusReader.srl_instances.<locals>.get_srl_instances£   s   ø€ Ø×*Ò*¨4°Ñ=Ô=Ð=r   )	r:   r;   rI   r`   rc   r#   r   r=   r   )r+   r-   r1   Úflattenri   Úresults   ` `   r   Úsrl_instanceszConllCorpusReader.srl_instancesž   sˆ   øø€ Ø�Š�d”j $¤(¨D¬I°t´xÑ@Ô@Ð@ØÐØÔ+ˆKð	>ð 	>ð 	>ð 	>ð 	>ð 	>õ Ð*¨D¯KªK¸Ñ,@Ô,@ÑAÔAˆØð 	/Ý& vÑ.Ô.ˆFØˆr   c                 ó¾   ‡ ‡— ‰                       ‰ j        ‰ j        ‰ j        ¦  «         ˆ ˆfd„}t	          t          |‰                      |¦  «        ¦  «        ¦  «        S )zÄ
        :return: a list of word/tag/IOB tuples
        :rtype: list(tuple)
        :param fileids: the list of fileids that make up this corpus
        :type fileids: None or str or list
        c                 ó0   •— ‰                      | ‰¦  «        S r9   ©Ú_get_iob_wordsrE   s    €€r   Úget_iob_wordsz2ConllCorpusReader.iob_words.<locals>.get_iob_words´   ó   ø€ Ø×&Ò& t¨VÑ4Ô4Ð4r   )r:   r;   rI   rV   r   r   r=   ©r+   r-   r5   rq   s   ` ` r   Ú	iob_wordszConllCorpusReader.iob_words«   sf   øø€ ð 	�Š�d”j $¤(¨D¬JÑ7Ô7Ð7ð	5ð 	5ð 	5ð 	5ð 	5ð 	5õ !¥¨¸¿ºÀGÑ8LÔ8LÑ!MÔ!MÑNÔNÐNr   c                 ó¤   ‡ ‡— ‰                       ‰ j        ‰ j        ‰ j        ¦  «         ˆ ˆfd„}t	          |‰                      |¦  «        ¦  «        S )zÌ
        :return: a list of lists of word/tag/IOB tuples
        :rtype: list(list)
        :param fileids: the list of fileids that make up this corpus
        :type fileids: None or str or list
        c                 ó0   •— ‰                      | ‰¦  «        S r9   ro   rE   s    €€r   rq   z2ConllCorpusReader.iob_sents.<locals>.get_iob_wordsÂ   rr   r   )r:   r;   rI   rV   r   r=   rs   s   ` ` r   Ú	iob_sentszConllCorpusReader.iob_sents¹   s^   øø€ ð 	�Š�d”j $¤(¨D¬JÑ7Ô7Ð7ð	5ð 	5ð 	5ð 	5ð 	5ð 	5õ �} d§k¢k°'Ñ&:Ô&:Ñ;Ô;Ð;r   c                 ób   ‡ — t          ˆ fd„‰                      |d¦  «        D ¦   «         ¦  «        S )Nc                 óD   •— g | ]\  }}t          |‰j        |¬ ¦  «        ‘ŒS ))r3   )ÚStreamBackedCorpusViewÚ_read_grid_block)r   ÚfileidÚencr+   s      €r   ú
<listcomp>z,ConllCorpusReader._grids.<locals>.<listcomp>Ð   s?   ø€ ð ð ð á!�V˜Sõ ' v¨tÔ/DÈsÐSÑSÔSðð ð r   T)ÚconcatÚabspathsr>   s   ` r   r=   zConllCorpusReader._gridsË   sK   ø€ õ ðð ð ð à%)§]¢]°7¸DÑ%AÔ%Aðñ ô ñ
ô 
ð 	
r   c                 ó   ‡ — g }t          |¦  «        D ]º}|                     ¦   «         }|sŒˆ fd„|                     d¦  «        D ¦   «         }|d         ‰ j                             dd¦  «                 dk    r|d= |D ]:}t          |¦  «        t          |d         ¦  «        k    rt          d|z  ¦  «        ‚Œ;|                     |¦  «         Œ»|S )Nc                 óD   •— g | ]}|                      ‰j        ¦  «        ‘ŒS r   )Úsplitr*   )r   Úliner+   s     €r   r~   z6ConllCorpusReader._read_grid_block.<locals>.<listcomp>Ý   s'   ø€ ÐGÐGÐG¨T�D—J’J˜tœxÑ(Ô(ÐGÐGÐGr   Ú
r   r
   z
-DOCSTART-z"Inconsistent number of columns:
%s)Úread_blankline_blockÚstriprƒ   r"   ÚgetÚlenr   Úappend)r+   ÚstreamÚgridsÚblockrF   Úrows   `     r   r{   z"ConllCorpusReader._read_grid_blockÖ   sì   ø€ ØˆÝ)¨&Ñ1Ô1ð 	ð 	ˆEØ—K’K‘M”MˆEØð ØàGÐGÐGÐG°U·[²[ÀÑ5FÔ5FÐGÑGÔGˆDð �AŒw�t”|×'Ò'¨°Ñ3Ô3Ô4¸ÒDÐDØ˜�Gð ð Tð T�Ý�s‘8”8�s 4¨¤7™|œ|Ò+Ð+Ý$Ð%JÈUÑ%RÑSÔSÐSð ,à�LŠL˜ÑÔÐÐØˆr   c                 óD   — |                       || j        d         ¦  «        S )Nr
   )Ú_get_columnr"   )r+   rF   s     r   r<   zConllCorpusReader._get_wordsñ   s   € Ø×Ò  d¤l°7Ô&;Ñ<Ô<Ð<r   c           	      óø   ‡ ‡— ‰                       |‰ j        d         ¦  «        }‰r‰‰ j        k    rˆ ˆfd„|D ¦   «         }t          t	          ‰                       |‰ j        d         ¦  «        |¦  «        ¦  «        S )Nr   c                 ó<   •— g | ]}t          ‰j        ‰|¦  «        ‘ŒS r   ©r   r)   ©r   Útr+   r5   s     €€r   r~   z7ConllCorpusReader._get_tagged_words.<locals>.<listcomp>÷   ó'   ø€ ÐKÐKÐK¸Q� ¤¨f°aÑ8Ô8ÐKÐKÐKr   r
   ©r�   r"   r)   ÚlistÚzip©r+   rF   r5   Úpos_tagss   ` ` r   rD   z#ConllCorpusReader._get_tagged_wordsô   s€   øø€ Ø×#Ò# D¨$¬,°uÔ*=Ñ>Ô>ˆØð 	L�f ¤Ò,Ð,ØKÐKÐKÐKÐKÀ(ÐKÑKÔKˆHÝ•C˜×(Ò(¨¨t¬|¸GÔ/DÑEÔEÀxÑPÔPÑQÔQÐQr   c                 ó8  ‡ ‡— ‰                       |‰ j        d         ¦  «        }‰r‰‰ j        k    rˆ ˆfd„|D ¦   «         }t          t	          ‰                       |‰ j        d         ¦  «        |‰                       |‰ j        d         ¦  «        ¦  «        ¦  «        S )Nr   c                 ó<   •— g | ]}t          ‰j        ‰|¦  «        ‘ŒS r   r“   r”   s     €€r   r~   z4ConllCorpusReader._get_iob_words.<locals>.<listcomp>ý   r–   r   r
   r   r—   rš   s   ` ` r   rp   z ConllCorpusReader._get_iob_wordsú   s§   øø€ Ø×#Ò# D¨$¬,°uÔ*=Ñ>Ô>ˆØð 	L�f ¤Ò,Ð,ØKÐKÐKÐKÐKÀ(ÐKÑKÔKˆHÝÝØ× Ò   t¤|°GÔ'<Ñ=Ô=ØØ× Ò   t¤|°GÔ'<Ñ=Ô=ñô ñ
ô 
ð 	
r   c                 ó0  ‡ ‡— ‰                       |‰ j        d         ¦  «        }‰                       |‰ j        d         ¦  «        }‰r‰‰ j        k    rˆ ˆfd„|D ¦   «         }‰                       |‰ j        d         ¦  «        }t          ‰ j        g ¦  «        g}t          |||¦  «        D ]æ\  }}	}
|
dk    rd\  }}n|
                     d¦  «        \  }}|�||vrd}|dk    r ||d	                              ¦   «         k    rd
}|dv r't          |¦  «        dk    r| 	                    ¦   «          |d
k    r@t          |g ¦  «        }|d	          
                    |¦  «         | 
                    |¦  «         |d	          
                    ||	f¦  «         Œç|d         S )Nr
   r   c                 ó<   •— g | ]}t          ‰j        ‰|¦  «        ‘ŒS r   r“   r”   s     €€r   r~   z8ConllCorpusReader._get_chunked_words.<locals>.<listcomp>  r–   r   r   ÚO)r    Ú Ú-ÚIéÿÿÿÿÚBÚBOé   r   )r�   r"   r)   r   r$   r™   rƒ   Úlabelr‰   ÚpoprŠ   )r+   rF   r/   r5   r
   r›   Ú
chunk_tagsÚstackÚwordÚpos_tagÚ	chunk_tagÚstateÚ
chunk_typeÚ	new_chunks   `  `          r   rR   z$ConllCorpusReader._get_chunked_words  s¶  øø€ à× Ò   t¤|°GÔ'<Ñ=Ô=ˆØ×#Ò# D¨$¬,°uÔ*=Ñ>Ô>ˆØð 	L�f ¤Ò,Ð,ØKÐKÐKÐKÐKÀ(ÐKÑKÔKˆHØ×%Ò% d¨D¬L¸Ô,AÑBÔBˆ
å�dÔ&¨Ñ+Ô+Ð,ˆå*-¨e°X¸zÑ*JÔ*Jð 	.ð 	.Ñ&ˆT�7˜IØ˜CÒÐØ$+Ñ!��z�zà&/§o¢o°cÑ&:Ô&:Ñ#�˜
àÐ&¨:¸[Ð+HÐ+HØ�à˜Š|ˆ| 
¨e°B¬i¯oªoÑ.?Ô.?Ò ?Ð ?Ø�à˜ˆ}ˆ}¥ U¡¤¨q¢ Ø—	’	‘”�à˜Š|ˆ|Ý  ¨RÑ0Ô0�	Ø�b”	× Ò  Ñ+Ô+Ð+Ø—’˜YÑ'Ô'Ð'à�"ŒI×Ò˜d G˜_Ñ-Ô-Ð-Ð-à�QŒxˆr   c           	      óÎ  ‡ ‡— ‰                       |‰ j        d         ¦  «        }‰                       |‰ j        d         ¦  «        }‰r‰‰ j        k    rˆ ˆfd„|D ¦   «         }‰                       |‰ j        d         ¦  «        }d}t          |||¦  «        D ]f\  }}	}
|dk    rd}|dk    rd	}|	dk    rd}	|	dk    rd	}	|
                     d
¦  «        \  }}|                     d¦  «        dz  }||› d|	› d|› d|› �z  }Œg	 ‰ j                             |¦  «        }n=# t          t          f$ r) ‰ j                             d‰ j
        › d|› d�¦  «        }Y nw xY w|sŽ|                     ¦   «         D ]y}t          |¦  «        D ]g\  }}t          |t          ¦  «        rMt          |¦  «        dk    r:t          |d         t           ¦  «        r|d         |                     ¦   «         f||<   ŒhŒz|S )Nr
   r   c                 ó<   •— g | ]}t          ‰j        ‰|¦  «        ‘ŒS r   r“   r”   s     €€r   r~   z6ConllCorpusReader._get_parsed_sent.<locals>.<listcomp>,  r–   r   r   r¡   ú(z-LRB-ú)z-RRB-r   z (Ú z) é   r   )r�   r"   r)   r™   rƒ   Úcountr&   Ú
fromstringr   Ú
IndexErrorr$   Úsubtreesr!   r   r   r‰   r   r¨   )r+   rF   r1   r5   r
   r›   Ú
parse_tagsÚtreestrr¬   r­   Ú	parse_tagÚleftÚrightr   Úsubtreer   Úchilds   `  `             r   r^   z"ConllCorpusReader._get_parsed_sent(  sL  øø€ Ø× Ò   t¤|°GÔ'<Ñ=Ô=ˆØ×#Ò# D¨$¬,°uÔ*=Ñ>Ô>ˆØð 	L�f ¤Ò,Ð,ØKÐKÐKÐKÐKÀ(ÐKÑKÔKˆHØ×%Ò% d¨D¬L¸Ô,@ÑAÔAˆ
àˆÝ*-¨e°X¸zÑ*JÔ*Jð 	<ð 	<Ñ&ˆT�7˜IØ�sŠ{ˆ{Ø�Ø�sŠ{ˆ{Ø�Ø˜#Š~ˆ~Ø!�Ø˜#Š~ˆ~Ø!�Ø%ŸOšO¨CÑ0Ô0‰MˆT�5Ø—K’K Ñ$Ô$ sÑ*ˆEØ˜$Ð;Ð; 'Ð;Ð;¨DÐ;Ð;°EÐ;Ð;Ñ;ˆGˆGð	RØÔ#×.Ò.¨wÑ7Ô7ˆDˆDøÝ�JÐ'ð 	Rð 	Rð 	RØÔ#×.Ò.Ð/P°4Ô3CÐ/PÐ/PÀgÐ/PÐ/PÐ/PÑQÔQˆDˆDˆDð	Røøøð ð 	?ØŸ=š=™?œ?ð ?ð ?�Ý )¨'Ñ 2Ô 2ð ?ð ?‘H�A�uå" 5­$Ñ/Ô/ð?å ™JœJ¨!šO˜OÝ& u¨Q¤xµÑ5Ô5ð ,ð ',¨A¤h°·²±´Ð%>˜ ™
øð?ð ˆs   Ã=D Ä7EÅEc                 ó
  — | j         r5|                      || j        d         dz   ¦  «        }| j        d         dz   }n1|                      || j        d         ¦  «        }| j        d         dz   }t          d„ |D ¦   «         ¦  «        }g }t	          |¦  «        D ]ê}|                      |||z   ¦  «        }g }g }	t          |¦  «        D ]¦\  }
}|                     d¦  «        \  }}|                     d¦  «        D ]}|r|	                     ||
f¦  «         Œt	          |                     d¦  «        ¦  «        D ]5}|	 	                    ¦   «         \  }}|                     ||
dz   f|f¦  «         Œ6Œ§|                     |¦  «         Œë|S )z;
        list of list of (start, end), tag) tuples
        r   r·   r§   c                 ó   — g | ]
}|d k    ¯|‘ŒS )r¢   r   )r   Úps     r   r~   z4ConllCorpusReader._get_srl_spans.<locals>.<listcomp>Z  s   € Ð;Ð;Ð;˜q°!°s²(°(˜°(°(°(r   r   r´   rµ   )
r%   r�   r"   r‰   Úranger!   rƒ   rŠ   r¸   r©   )r+   rF   Ú
predicatesÚ	start_colÚ	num_predsÚ	spanlistsr   ÚcolÚspanlistr«   ÚwordnumÚsrl_tagr¿   rÀ   ÚtagÚstarts                   r   rd   z ConllCorpusReader._get_srl_spansM  s´  € ð Ô%ð 	0Ø×)Ò)¨$°´¸UÔ0CÀaÑ0GÑHÔHˆJØœ UÔ+¨aÑ/ˆIˆIà×)Ò)¨$°´¸UÔ0CÑDÔDˆJØœ UÔ+¨aÑ/ˆIõ Ð;Ð; JÐ;Ñ;Ô;Ñ<Ô<ˆ	àˆ	Ý�yÑ!Ô!ð 	'ð 	'ˆAØ×"Ò" 4¨°Q©Ñ7Ô7ˆCØˆHØˆEÝ$-¨c¡N¤Nð Að AÑ �˜Ø '§¢¨cÑ 2Ô 2‘��uØŸ:š: c™?œ?ð 5ð 5�CØð 5ØŸš c¨7 ^Ñ4Ô4Ð4øÝ˜uŸ{š{¨3Ñ/Ô/Ñ0Ô0ð Að A�AØ#(§9¢9¡;¤;‘L�S˜%Ø—O’O e¨W°q©[Ð%9¸3Ð$?Ñ@Ô@Ð@Ð@ðAð ×Ò˜XÑ&Ô&Ð&Ð&àÐr   c           
      ó„  — |                       ||¦  «        }|                      |¦  «        }| j        rF|                      || j        d         dz   ¦  «        }|                      || j        d         ¦  «        }n4|                      || j        d         ¦  «        }d gt          |¦  «        z  }t          |¦  «        }t          |¦  «        D ]t\  }}	|	dk    rŒ|D ]'}
|
D ] \  \  }}}|t          ||¦  «        v r|dv r nŒ!Œ& nt          d|	z  ¦  «        ‚| 
                    t          |||	||         |
¦  «        ¦  «         Œu|S )Nr   r·   r¢   ©ÚVzC-VzNo srl column found for %r)r^   rd   r%   r�   r"   r‰   ÚConllSRLInstanceListr!   rÆ   r   rŠ   ÚConllSRLInstance)r+   rF   r1   r   rÊ   rÇ   ÚrolesetsÚ	instancesrÍ   Ú	predicaterÌ   rÐ   ÚendrÏ   s                 r   rh   z$ConllCorpusReader._get_srl_instancesm  s‚  € Ø×$Ò$ T¨;Ñ7Ô7ˆØ×'Ò'¨Ñ-Ô-ˆ	ØÔ%ð 	0Ø×)Ò)¨$°´¸UÔ0CÀaÑ0GÑHÔHˆJØ×'Ò'¨¨d¬l¸5Ô.AÑBÔBˆHˆHà×)Ò)¨$°´¸UÔ0CÑDÔDˆJØ�v¥ J¡¤Ñ/ˆHå(¨Ñ.Ô.ˆ	Ý"+¨JÑ"7Ô"7ð 	ð 	ÑˆG�YØ˜CÒÐØð &ð Kð K�Ø)1ð ð Ñ%‘L�U˜C #Ø¥%¨¨sÑ"3Ô"3Ð3Ð3¸¸|Ð8KÐ8KØ˜øàØ�å Ð!=À	Ñ!IÑJÔJÐJØ×ÒÝ   w°	¸8ÀGÔ;LÈhÑWÔWñô ð ð ð Ðr   c                 óF   — |D ]}|| j         vrt          d|z  ¦  «        ‚Œd S )Nz)This corpus does not contain a %s column.)r"   r   )r+   r.   r7   s      r   r:   zConllCorpusReader._require‘  sG   € Ø%ð 	ð 	ˆJØ ¤Ð-Ð-Ý ØBÀZÑOñô ð ð .ð	ð 	r   c                 óX   ‡ ‡— ˆˆ fd„t          t          ‰ ¦  «        ¦  «        D ¦   «         S )Nc                 ó,   •— g | ]}‰|         ‰         ‘ŒS r   r   )r   r   Úcolumn_indexrF   s     €€r   r~   z1ConllCorpusReader._get_column.<locals>.<listcomp>š  s"   ø€ Ð@Ð@Ð@¨!��Q”˜Ô%Ð@Ð@Ð@r   )rÆ   r‰   )rF   rÝ   s   ``r   r�   zConllCorpusReader._get_column˜  s/   øø€ à@Ð@Ð@Ð@Ð@­uµS¸±Y´YÑ/?Ô/?Ð@Ñ@Ô@Ð@r   r9   )NN)NNN)NNT)%Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;   rI   r`   rV   ÚNErc   ÚIGNOREr   r   r(   r
   r@   rK   rN   rX   r[   ra   re   rl   rt   rw   r=   r{   r<   rD   rp   rR   r^   rd   rh   r:   Ústaticmethodr�   r   r   r   r	   r	      sS  € € € € € ðð ð: €EØ
€CØ€DØ€EØ	€BØ
€CØ€Fð ˜3  e¨R°°fÐ=€Lð ØØØ!ØØØØðð ð ð ðBQð Qð Qð Qð>ð >ð >ð >ðRð Rð Rð Rð?ð ?ð ?ð ?ðSð Sð Sð Sð@ð @ð @ð @ð>ð >ð >ð >ðBð Bð Bð Bðð ð ð ðOð Oð Oð Oð<ð <ð <ð <ð$	
ð 	
ð 	
ð 	
ðð ð ð6=ð =ð =ðRð Rð Rð Rð

ð 

ð 

ð 

ð ð  ð  ð  ðD#ð #ð #ð #ðJð ð ð@ð ð ðHð ð ð ðAð Añ „\ðAð Að Ar   r	   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )rÕ   z|
    An SRL instance from a CoNLL corpus, which identifies and
    providing labels for the arguments of a single verb.
    c           	      óX  — g | _         	 || _        	 || _        || _        g | _        	 || _        	 || _        	 |                     ¦   «         | _        	 |D ]V\  \  }}}|dv r,| xj         t          t          ||¦  «        ¦  «        z  c_         Œ8| j                             ||f|f¦  «         ŒWd S )NrÒ   )ÚverbÚ	verb_headÚ	verb_stemÚrolesetÚ	argumentsÚtagged_spansr   Úleavesr
   r˜   rÆ   rŠ   )	r+   r   rè   ré   rê   rì   rÐ   rÙ   rÏ   s	            r   r(   zConllSRLInstance.__init__¥  sÝ   € ØˆŒ	ð	/ð
 #ˆŒð	"ð
 #ˆŒàˆŒàˆŒð	Fð
 )ˆÔð	*ð ˆŒ	ØGà—[’[‘]”]ˆŒ
ð	ð ".ð 	;ð 	;Ñ‰LˆU�C˜#Ø�lÐ"Ð"Ø�	”	�T¥%¨¨sÑ"3Ô"3Ñ4Ô4Ñ4�	”	�	à”×%Ò%¨¨s |°SÐ&9Ñ:Ô:Ð:Ð:ð		;ð 	;r   c                 óx   — t          | j        ¦  «        dk    rdnd}d| j        t          | j        ¦  «        |fz  S )Nr·   Úsr¡   z,<ConllSRLInstance for %r with %d argument%s>)r‰   rë   ré   )r+   Úplurals     r   Ú__repr__zConllSRLInstance.__repr__Ï  sD   € õ ˜DœNÑ+Ô+¨qÒ0Ð0��°bˆØ=ØŒ^�S ¤Ñ0Ô0°&Ð9ñ
ð 	
r   c                 ó¸  ‡ — d                      ˆ fd„‰ j        D ¦   «         ¦  «        }d|›d‰ j        ›d�}d}t          ‰ j        ¦  «        D ]a\  }}t          |t          ¦  «        r|d         }‰ j        D ]!\  \  }}}||k    r|d|z  z  }||k    r|d	z  }Œ"|‰ j        v rd
|z  }||dz   z  }Œb|t          j	        | 
                    dd¦  «        dd¬¦  «        z   S )Nr¶   c              3   ó>   •K  — | ]}‰j         |         d          V — ŒdS )r   N)r
   )r   r   r+   s     €r   ú	<genexpr>z*ConllSRLInstance.pprint.<locals>.<genexpr>Ø  s.   øè è € Ð?Ð?°˜4œ: aœ=¨Ô+Ð?Ð?Ð?Ð?Ð?Ð?r   zSRL for z (stem=z):
r¡   r   z[%s z] z<<%s>>z ]ú]z    )Úinitial_indentÚsubsequent_indent)Újoinrç   ré   r!   r
   r   Útuplerë   ÚtextwrapÚfillÚreplace)	r+   ÚverbstrÚhdrrï   r   r¬   rÐ   rÙ   Úargids	   `        r   ÚpprintzConllSRLInstance.pprint×  s  ø€ Ø—(’(Ð?Ð?Ð?Ð?°T´YÐ?Ñ?Ô?Ñ?Ô?ˆØA˜ÐAÐA¨4¬>ÐAÐAÐAˆØˆÝ  ¤Ñ,Ô,ð 
	ð 
	‰GˆAˆtÝ˜$¥Ñ&Ô&ð Ø˜A”w�Ø'+¤~ð ð Ñ#‘�˜˜eØ˜’:�:Ø˜ %™Ñ'�AØ˜’8�8Ø˜‘I�AøØ�D”Iˆ~ˆ~Ø $‘�Ø�˜‘‰OˆAˆAØ•X”]Ø�IŠI�d˜CÑ Ô °È6ð
ñ 
ô 
ñ 
ð 	
r   N)rÞ   rß   rà   rá   r(   rñ   r   r   r   r   rÕ   rÕ   �  sL   € € € € € ðð ð(;ð (;ð (;ðT
ð 
ð 
ð
ð 
ð 
ð 
ð 
r   rÕ   c                   ó.   — e Zd ZdZd	d„Zd„ Zd
d„Zd„ ZdS )rÔ   z0
    Set of instances for a single sentence
    r   c                 óJ   — || _         t                               | |¦  «         d S r9   )r   r˜   r(   )r+   r   r×   s      r   r(   zConllSRLInstanceList.__init__ð  s#   € ØˆŒ	Ý�Š�d˜IÑ&Ô&Ð&Ð&Ð&r   c                 ó*   — |                       ¦   «         S r9   )r   )r+   s    r   Ú__str__zConllSRLInstanceList.__str__ô  s   € Ø�{Š{‰}Œ}Ðr   Fc                 ó²  — | D ]!}|j         | j         k    rt          d¦  «        ‚Œ"|r]| j                              ¦   «         }d gt          |¦  «        z  }dgt          |¦  «        z  }|                      | j         d|||¦  «         d}t          t          |¦  «        ¦  «        D ]´}|rJ|d||         z  z  }|d||         z  z  }|dt          ||                              d¦  «        ¦  «        z  z  }| D ]}||j        k    r|d|j	        z  z  } n	Œ|ddz  z  }| D ]7}d}|j
        D ]#\  \  }	}
}||	k    rd	|› |› �}||
d
z
  k    r|dz  }Œ$|d|z  z  }Œ8|dz  }Œµ|S )NzTree mismatch!r   r   r¡   z%-20s z%-8s z
%15s*%-8s r¢   r´   r·   rµ   z%-12s r…   )r   r   rí   r‰   Ú_tree2conllrÆ   rù   rƒ   rè   ré   rì   )r+   Úinclude_treeÚinstr
   r   Úsyntrï   r   ÚargstrrÐ   rÙ   rÿ   s               r   r   zConllSRLInstanceList.pprint÷  sÕ  € àð 	3ð 	3ˆDØŒy˜DœIÒ%Ð%Ý Ð!1Ñ2Ô2Ð2ð &ð ð 	=Ø”I×$Ò$Ñ&Ô&ˆEØ�&�3˜u™:œ:Ñ%ˆCØ�5�3˜u™:œ:Ñ%ˆDØ×Ò˜TœY¨¨5°#°tÑ<Ô<Ð<àˆÝ•s˜5‘z”zÑ"Ô"ð 	ð 	ˆAàð >Ø�X  a¤Ñ(Ñ(�Ø�W˜s 1œvÑ%Ñ%�Ø�\¥E¨$¨q¬'¯-ª-¸Ñ*<Ô*<Ñ$=Ô$=Ñ=Ñ=�ð ð $ð $�Ø˜œÒ&Ð&Ø˜ D¤NÑ2Ñ2�AØ�Eð 'ð �X ‘^Ñ#�àð 'ð '�Ø�Ø+/Ô+<ð &ð &Ñ'‘L�U˜C %Ø˜E’z�zØ!4 UÐ!4¨FÐ!4Ð!4˜Ø˜S 1™W’~�~Ø #™˜øØ�X Ñ&Ñ&��Ø�‰IˆAˆAØˆr   c                 óT  — t          |t          ¦  «        sJ ‚t          |¦  «        dk    rKt          |d         t          ¦  «        r0|                     ¦   «         ||<   ||         |d         k    sJ ‚|dz   S t          |¦  «        dk    rLt          |d         t
          ¦  «        r1t          |d         ¦  «        dk    sJ ‚|d         \  ||<   ||<   |dz   S d|                     ¦   «         › ||         › �||<   |D ]}|                      |||||¦  «        }Œ||dz
  xx         dz  cc<   |S )Nr·   r   r§   r´   rµ   )r   r   r‰   r   r¨   rù   r  )r+   r   rÍ   r
   r   r	  rÂ   s          r   r  z ConllSRLInstanceList._tree2conll  s>  € Ý˜$¥Ñ%Ô%Ð%Ð%Ð%Ýˆt‰9Œ9˜Š>ˆ>�j¨¨a¬µ#Ñ6Ô6ˆ>ØŸ:š:™<œ<ˆC�‰LØ˜”> T¨!¤WÒ,Ð,Ð,Ð,Ø˜Q‘;ÐÝ�‰YŒY˜!Š^ˆ^¥
¨4°¬7µEÑ :Ô :ˆ^Ý�t˜A”w‘<”< 1Ò$Ð$Ð$Ð$Ø)-¨a¬Ñ&ˆC�‰L˜#˜g™,Ø˜Q‘;Ðà= §
¢
¡¤Ð=¨d°7¬mÐ=Ð=ˆD�‰MØð Mð M�Ø×*Ò*¨5°'¸5À#ÀtÑLÔL��Ø�˜1‘ÐÐÔ Ñ$ÐÐÑØˆNr   N)r   )F)rÞ   rß   rà   rá   r(   r  r   r  r   r   r   rÔ   rÔ   ë  se   € € € € € ðð ð'ð 'ð 'ð 'ðð ð ð&ð &ð &ð &ðPð ð ð ð r   rÔ   c                   ó   — e Zd ZdZ	 dd„ZdS )ÚConllChunkCorpusReaderz`
    A ConllCorpusReader whose data file contains three columns: words,
    pos, and chunk.
    r   Nc           
      óJ   — t                                | ||d||||¬¦  «         d S )N)r
   r   r   )r/   r3   r5   r6   )r	   r(   )r+   r,   r-   r/   r3   r5   r6   s          r   r(   zConllChunkCorpusReader.__init__7  sC   € õ 	×"Ò"ØØØØ%Ø#ØØØð 	#ñ 		
ô 		
ð 		
ð 		
ð 		
r   )r   NN)rÞ   rß   rà   rá   r(   r   r   r   r  r  1  s9   € € € € € ðð ð SWð
ð 
ð 
ð 
ð 
ð 
r   r  )rá   rú   Únltk.corpus.reader.apiÚnltk.corpus.reader.utilÚnltk.tagr   Ú	nltk.treer   Ú	nltk.utilr   r   r'   r	   rÕ   r˜   rÔ   r  r   r   r   ú<module>r     sB  ððð ð €€€à $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ðDAð DAð DAð DAð DA˜ñ DAô DAð DAðNK
ð K
ð K
ð K
ð K
ñ K
ô K
ð K
ð\Cð Cð Cð Cð C˜4ñ Cô Cð CðL
ð 
ð 
ð 
ð 
Ð.ñ 
ô 
ð 
ð 
ð 
r   