§
    'ê[f›  ã                   ó�   — d dl Z d dlmZmZ d dlmZmZmZ d dlm	Z	 d„ Z
 G d„ de¦  «        Zd„ Zd	„ Zed
k    r e¦   «          dS dS )é    N)ÚCorpusReaderÚSyntaxCorpusReader)ÚFileSystemPathPointerÚfind_corpus_fileidsÚread_blankline_block)ÚDependencyGraphc                 ó@   — d                      d„ | D ¦   «         ¦  «        S )Nú/c              3   ó>   K  — | ]}|d          dk    ¯|d          V — ŒdS )r   ÚEOSN© ©Ú.0Úms     úK/var/www/piapp/venv/lib/python3.11/site-packages/nltk/corpus/reader/knbc.pyú	<genexpr>z<lambda>.<locals>.<genexpr>   s.   è è € Ð-TÐ-T°qÀaÈÄdÈeÂmÀm¨a°¬dÀmÀmÀmÀmÐ-TÐ-Tó    ©Újoin©Úmorphss    r   ú<lambda>r      s!   €  S§X¢XÐ-TÐ-T¸FÐ-TÑ-TÔ-TÑ%TÔ%T€ r   c                   ó8   — e Zd ZdZdefd„Zd„ Zd„ Zd	d„Zd„ Z	dS )
ÚKNBCorpusReadera£  
    This class implements:
      - ``__init__``, which specifies the location of the corpus
        and a method for detecting the sentence blocks in corpus files.
      - ``_read_block``, which reads a block from the input stream.
      - ``_word``, which takes a block and returns a list of list of words.
      - ``_tag``, which takes a block and returns a list of list of tagged
        words.
      - ``_parse``, which takes a block and returns a list of parsed
        sentences.

    The structure of tagged words:
      tagged_word = (word(str), tags(tuple))
      tags = (surface, reading, lemma, pos1, posid1, pos2, posid2, pos3, posid3, others ...)

    Usage example

    >>> from nltk.corpus.util import LazyCorpusLoader
    >>> knbc = LazyCorpusLoader(
    ...     'knbc/corpus1',
    ...     KNBCorpusReader,
    ...     r'.*/KN.*',
    ...     encoding='euc-jp',
    ... )

    >>> len(knbc.sents()[0])
    9

    Úutf8c                 óB   — t          j        | |||¦  «         || _        dS )z–
        Initialize KNBCorpusReader
        morphs2str is a function to convert morphlist to str for tree representation
        for _parse()
        N)r   Ú__init__Ú
morphs2str)ÚselfÚrootÚfileidsÚencodingr   s        r   r   zKNBCorpusReader.__init__7   s&   € õ 	Ô# D¨$°¸ÑBÔBÐBØ$ˆŒˆˆr   c                 ó    — t          |¦  «        S ©N)r   )r   Ústreams     r   Ú_read_blockzKNBCorpusReader._read_block@   s   € å# FÑ+Ô+Ð+r   c                 óæ   — g }|                      ¦   «         D ]Y}t          j        d|¦  «        sB|                     ¦   «                              d¦  «        }|                     |d         ¦  «         ŒZ|S )NúEOS|\*|\#|\+Ú r   )Ú
splitlinesÚreÚmatchÚstripÚsplitÚappend)r   ÚtÚresÚlineÚcellss        r   Ú_wordzKNBCorpusReader._wordD   si   € ØˆØ—L’L‘N”Nð 	%ð 	%ˆDå”8˜O¨TÑ2Ô2ð %ØŸ
š
™œ×*Ò*¨3Ñ/Ô/�Ø—
’
˜5 œ8Ñ$Ô$Ð$øàˆ
r   Nc           	      ó   — g }|                      ¦   «         D ]v}t          j        d|¦  «        s_|                     ¦   «                              d¦  «        }|                     |d         d                     |dd …         ¦  «        f¦  «         Œw|S )Nr(   r)   r   é   )r*   r+   r,   r-   r.   r/   r   )r   r0   Útagsetr1   r2   r3   s         r   Ú_tagzKNBCorpusReader._tagO   s‚   € ØˆØ—L’L‘N”Nð 	<ð 	<ˆDå”8˜O¨TÑ2Ô2ð <ØŸ
š
™œ×*Ò*¨3Ñ/Ô/�à—
’
˜E !œH c§h¢h¨u°Q°R°R¬yÑ&9Ô&9Ð:Ñ;Ô;Ð;øàˆ
r   c                 óÌ  — t          ¦   «         }d}|                     ¦   «         D �]j}|d         dv rÜ|                     ¦   «                              dd¦  «        }t	          j        d|d         ¦  «        }|€J ‚|j        |         }|                     ||                     d¦  «        g dœ¦  «         t          |                     d¦  «        ¦  «        }|d	k    r||_
        n&|j        |         d
                              |¦  «         |dz  }Œé|d         dk    ru|                     ¦   «                              d¦  «        }|d         d                     |dd …         ¦  «        f}	|j        |dz
           d                              |	¦  «         �Œl| j        r:|j                             ¦   «         D ] }|                      |d         ¦  «        |d<   Œ!|                     ¦   «         S )Nr   z*+r)   é   z([\-0-9]*)([ADIP])r6   é   )ÚaddressÚrelÚwordéÿÿÿÿÚdepsú#r>   )r   r*   r-   r.   r+   r,   ÚnodesÚupdateÚgroupÚintr    r/   r   r   ÚvaluesÚtree)
r   r0   ÚdgÚir2   r3   r   ÚnodeÚ
dep_parentÚmorphs
             r   Ú_parsezKNBCorpusReader._parseZ   sµ  € ÝÑÔˆØˆØ—L’L‘N”Nð 	6ñ 	6ˆDØ�AŒw˜$ˆˆð Ÿ
š
™œ×*Ò*¨3°Ñ2Ô2�Ý”HÐ2°E¸!´HÑ=Ô=�à�}�}�}à”x ”{�Ø—’¨°!·'²'¸!±*´*ÀbÐIÐIÑJÔJÐJå  §¢¨¡¤™_œ_�
à Ò#Ð#Ø"�B”G�Gà”H˜ZÔ(¨Ô0×7Ò7¸Ñ:Ô:Ð:à�Q‘��Ø�a”˜C’�àŸ
š
™œ×*Ò*¨3Ñ/Ô/�à˜aœ #§(¢(¨5°°°¬9Ñ"5Ô"5Ð5�Ø”˜˜Q™” Ô'×.Ò.¨uÑ5Ô5Ð5ùàŒ?ð 	=ØœŸšÑ)Ô)ð =ð =�Ø#Ÿš¨t°F¬|Ñ<Ô<��V‘�à�wŠw‰yŒyÐr   r$   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_morphs2str_defaultr   r&   r4   r8   rM   r   r   r   r   r      s{   € € € € € ðð ð< 06ÐBUð %ð %ð %ð %ð,ð ,ð ,ðð ð ð	ð 	ð 	ð 	ð"ð "ð "ð "ð "r   r   c                  óf  — dd l } ddlm} | j                             d¦  «        }d„ t          t          |¦  «        d¦  «        D ¦   «         }d„ } |dt          t          ||¬¦  «        d	¬
¦  «        }t          | 
                    ¦   «         d d…         ¦  «         t          d                     |                     ¦   «         d d…         ¦  «        ¦  «         t          d                     d„ |                     ¦   «         d d…         D ¦   «         ¦  «        ¦  «         d„ |_        t          d                     d„ |                     ¦   «         d d…         D ¦   «         ¦  «        ¦  «         t          d                     d„ |                     ¦   «         dd…         D ¦   «         ¦  «        ¦  «         d S )Nr   ©ÚLazyCorpusLoaderzcorpora/knbc/corpus1c                 ó<   — g | ]}t          j        d |¦  «        ¯|‘ŒS )z\d\-\d\-[\d]+\-[\d]+)r+   Úsearch)r   Úfs     r   ú
<listcomp>zdemo.<locals>.<listcomp>Š   s;   € ð ð ð àÝŒ9Ð,¨aÑ0Ô0ðØ	ðð ð r   z.*c                 ó¶   — |                       d¦  «        }|d         t          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        fS )NÚ-r   r6   r;   r:   )r.   rE   )Úxr3   s     r   Ú_knbc_fileids_sortz demo.<locals>._knbc_fileids_sort�   sB   € Ø—’˜‘”ˆØ�a”�#˜e Aœh™-œ-­¨U°1¬X©¬½¸EÀ!¼H¹¼ÐFÐFr   úknbc/corpus1)Úkeyúeuc-jp©r"   é
   Ú éd   z

c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r$   )Ústr©r   rG   s     r   r   zdemo.<locals>.<genexpr>ž   s(   è è € ÐDÐD D•c˜$‘i”iÐDÐDÐDÐDÐDÐDr   r;   c                 óf   — d                      d„ | D ¦   «         ¦  «                             d¦  «        S )Nr
   c              3   ó¤   K  — | ]K}|d          dk    ¯d                      |d          |d                              d¦  «        d         ¦  «        V — ŒLdS )r   r   z{}({})r6   r)   r;   N©Úformatr.   r   s     r   r   z)demo.<locals>.<lambda>.<locals>.<genexpr>    sX   è è € ð .ð .Ø67ÀQÀqÄTÈUÂ]À]ˆ�Š˜˜!œ˜a œdŸjšj¨™oœo¨aÔ0Ñ1Ô1À]À]À]À]ð.ð .r   zutf-8)r   Úencoder   s    r   r   zdemo.<locals>.<lambda>    s>   €  S§X¢Xð .ð .Ø;Að.ñ .ô .ñ &ô &ç‚fˆW�o„oð r   c              3   ó    K  — | ]	}d |z  V — Œ
dS )z%sNr   rg   s     r   r   zdemo.<locals>.<genexpr>¤   s&   è è € ÐFÐF d�d˜T‘kÐFÐFÐFÐFÐFÐFr   Ú
c              3   óT   K  — | ]#}d                       d„ |D ¦   «         ¦  «        V — Œ$dS )r)   c              3   óŒ   K  — | ]?}d                       |d         |d                              d¦  «        d         ¦  «        V — Œ@dS )z{}/{}r   r6   r)   r;   Nrj   )r   Úws     r   r   z!demo.<locals>.<genexpr>.<genexpr>¨   sG   è è € ÐLÐLÀ!�W—^’^ A a¤D¨!¨A¬$¯*ª*°S©/¬/¸!Ô*<Ñ=Ô=ÐLÐLÐLÐLÐLÐLr   Nr   )r   Úsents     r   r   zdemo.<locals>.<genexpr>§   sQ   è è € ð 
ð 
àð �HŠHÐLÐLÀtÐLÑLÔLÑLÔLð
ð 
ð 
ð 
ð 
ð 
r   )ÚnltkÚnltk.corpus.utilrU   ÚdataÚfindr   r   r   ÚsortedÚprintr!   r   ÚwordsÚparsed_sentsr   Útagged_sents)rs   rU   r    r!   r]   Úknbcs         r   Údemor}   „   sÝ  € à€K€K€KØ1Ð1Ð1Ð1Ð1Ð1àŒ9�>Š>Ð0Ñ1Ô1€Dðð å$Õ%:¸4Ñ%@Ô%@À$ÑGÔGðñ ô €GðGð Gð Gð ÐØÝÝˆwÐ.Ð/Ñ/Ô/Øð	ñ ô €Dõ 
ˆ$�,Š,‰.Œ.˜˜"˜Ô
ÑÔÐÝ	ˆ"�'Š'�$—*’*‘,”,˜t ˜tÔ$Ñ
%Ô
%Ñ&Ô&Ð&å	ˆ&�+Š+ÐDÐD¨D×,=Ò,=Ñ,?Ô,?ÀÀÀÔ,CÐDÑDÔDÑ
DÔ
DÑEÔEÐEðð €D„Oõ 
ˆ&�+Š+ÐFÐF¨d×.?Ò.?Ñ.AÔ.AÀ"À1À"Ô.EÐFÑFÔFÑ
FÔ
FÑGÔGÐGå	Ø�	Š	ð 
ð 
à×)Ò)Ñ+Ô+¨A¨a¨CÔ0ð
ñ 
ô 
ñ 	
ô 	
ñô ð ð ð r   c                  óÊ  — ddl m}   | dt          dd¬¦  «        }t          |                     ¦   «         d         t
          ¦  «        sJ ‚t          |                     ¦   «         d         d         t
          ¦  «        sJ ‚t          |                     ¦   «         d         t          ¦  «        sJ ‚t          | 	                    ¦   «         d         d         t          ¦  «        sJ ‚d S )Nr   rT   r^   z.*/KN.*r`   ra   )
rt   rU   r   Ú
isinstancery   rf   ÚsentsÚtagged_wordsÚtupler{   )rU   r|   s     r   Útestrƒ   ®   sØ   € à1Ð1Ð1Ð1Ð1Ð1àÐØ�¨¸hðñ ô €Dõ �d—j’j‘l”l 1”o¥sÑ+Ô+Ð+Ð+Ð+Ý�d—j’j‘l”l 1”o aÔ(­#Ñ.Ô.Ð.Ð.Ð.Ý�d×'Ò'Ñ)Ô)¨!Ô,­eÑ4Ô4Ð4Ð4Ð4Ý�d×'Ò'Ñ)Ô)¨!Ô,¨QÔ/µÑ7Ô7Ð7Ð7Ð7Ð7Ð7r   Ú__main__)r+   Únltk.corpus.reader.apir   r   Únltk.corpus.reader.utilr   r   r   Ú
nltk.parser   rR   r   r}   rƒ   rN   r   r   r   ú<module>rˆ      sñ   ðð 
€	€	€	à CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cðð ð ð ð ð ð ð ð ð ð
 'Ð &Ð &Ð &Ð &Ð &ð UÐTÐ ðdð dð dð dð dÐ(ñ dô dð dðX'ð 'ð 'ðT
8ð 
8ð 
8ð ˆzÒÐØ€D�F„F€F€F€Fð Ðr   