§
    'ê[f­0  ã                   óŒ   — d Z ddlZddlZddlmZ dd„Zd„ Zd„ Zd„ Z	 G d„ d	¦  «        Z
d
„ Zd„ Zefd„Zefd„Zi add„Zd„ ZdS )z0
Utility functions and classes for classifiers.
é    N)ÚLazyMapc                 óž   ‡ — |€$|o!t          |d         t          t          f¦  «        }|rˆ fd„}t          ||¦  «        S t          ‰ |¦  «        S )aÖ  
    Use the ``LazyMap`` class to construct a lazy list-like
    object that is analogous to ``map(feature_func, toks)``.  In
    particular, if ``labeled=False``, then the returned list-like
    object's values are equal to::

        [feature_func(tok) for tok in toks]

    If ``labeled=True``, then the returned list-like object's values
    are equal to::

        [(feature_func(tok), label) for (tok, label) in toks]

    The primary purpose of this function is to avoid the memory
    overhead involved in storing all the featuresets for every token
    in a corpus.  Instead, these featuresets are constructed lazily,
    as-needed.  The reduction in memory overhead can be especially
    significant when the underlying list of tokens is itself lazy (as
    is the case with many corpus readers).

    :param feature_func: The function that will be applied to each
        token.  It should return a featureset -- i.e., a dict
        mapping feature names to feature values.
    :param toks: The list of tokens to which ``feature_func`` should be
        applied.  If ``labeled=True``, then the list elements will be
        passed directly to ``feature_func()``.  If ``labeled=False``,
        then the list elements should be tuples ``(tok,label)``, and
        ``tok`` will be passed to ``feature_func()``.
    :param labeled: If true, then ``toks`` contains labeled tokens --
        i.e., tuples of the form ``(tok, label)``.  (Default:
        auto-detect based on types.)
    Nr   c                 ó6   •—  ‰| d         ¦  «        | d         fS )Nr   é   © )Úlabeled_tokenÚfeature_funcs    €úF/var/www/piapp/venv/lib/python3.11/site-packages/nltk/classify/util.pyÚ	lazy_funcz!apply_features.<locals>.lazy_func@   s"   ø€ Ø �L ¨qÔ!1Ñ2Ô2°MÀ!Ô4DÐEÐEó    )Ú
isinstanceÚtupleÚlistr   )r	   ÚtoksÚlabeledr   s   `   r
   Úapply_featuresr      so   ø€ ðB €ØÐ=�: d¨1¤gµµt¨}Ñ=Ô=ˆØð +ð	Fð 	Fð 	Fð 	Fð 	Fõ �y $Ñ'Ô'Ð'å�| TÑ*Ô*Ð*r   c                 ó4   — t          d„ | D ¦   «         ¦  «        S )a!  
    :return: A list of all labels that are attested in the given list
        of tokens.
    :rtype: list of (immutable)
    :param tokens: The list of classified tokens from which to extract
        labels.  A classified token has the form ``(token, label)``.
    :type tokens: list
    c                 ó   — h | ]\  }}|’ŒS r   r   )Ú.0ÚtokÚlabels      r
   ú	<setcomp>z"attested_labels.<locals>.<setcomp>Q   s   € Ð3Ð3Ð3™L˜S %�%Ð3Ð3Ð3r   )r   )Útokenss    r
   Úattested_labelsr   H   s!   € õ Ð3Ð3¨FÐ3Ñ3Ô3Ñ4Ô4Ð4r   c                 óÖ   — |                       d„ |D ¦   «         ¦  «        }d„ t          ||¦  «        D ¦   «         }t          j        t	          |¦  «        t          |¦  «        z  ¦  «        S )Nc                 ó   — g | ]\  }}|‘ŒS r   r   ©r   ÚfsÚls      r
   ú
<listcomp>z"log_likelihood.<locals>.<listcomp>U   s   € Ð,DÐ,DÐ,D±G°R¸¨RÐ,DÐ,DÐ,Dr   c                 óD   — g | ]\  \  }}}|                      |¦  «        ‘ŒS r   )Úprob)r   r   r   Úpdists       r
   r    z"log_likelihood.<locals>.<listcomp>V   s+   € Ð	CÐ	CÐ	CÑ,™W˜b ! eˆ%�*Š*�Q‰-Œ-Ð	CÐ	CÐ	Cr   )Úprob_classify_manyÚzipÚmathÚlogÚsumÚlen)Ú
classifierÚgoldÚresultsÚlls       r
   Úlog_likelihoodr.   T   sb   € Ø×+Ò+Ð,DÐ,D¸tÐ,DÑ,DÔ,DÑEÔE€GØ	CÐ	Cµ°D¸'Ñ0BÔ0BÐ	CÑ	CÔ	C€BÝŒ8•C˜‘G”G�c "™gœgÑ%Ñ&Ô&Ð&r   c                 óº   — |                       d„ |D ¦   «         ¦  «        }d„ t          ||¦  «        D ¦   «         }|rt          |¦  «        t          |¦  «        z  S dS )Nc                 ó   — g | ]\  }}|‘ŒS r   r   r   s      r
   r    zaccuracy.<locals>.<listcomp>[   s   € Ð'?Ð'?Ð'?©w°°A¨Ð'?Ð'?Ð'?r   c                 ó&   — g | ]\  \  }}}||k    ‘ŒS r   r   )r   r   r   Úrs       r
   r    zaccuracy.<locals>.<listcomp>\   s$   € Ð=Ð=Ð=™,™7˜B  Aˆq�AŠvÐ=Ð=Ð=r   r   )Úclassify_manyr%   r(   r)   )r*   r+   r,   Úcorrects       r
   Úaccuracyr5   Z   se   € Ø×&Ò&Ð'?Ð'?¸$Ð'?Ñ'?Ô'?Ñ@Ô@€GØ=Ð=­#¨d°GÑ*<Ô*<Ð=Ñ=Ô=€GØð Ý�7‰|Œ|�c '™lœlÑ*Ð*àˆqr   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚCutoffCheckerzÉ
    A helper class that implements cutoff checks based on number of
    iterations and log likelihood.

    Accuracy cutoffs are also implemented, but they're almost never
    a good idea to use.
    c                 óÔ   — |                      ¦   «         | _        d|v rt          |d         ¦  «         |d<   d|v rt          |d         ¦  «        |d<   d | _        d | _        d| _        d S )NÚmin_llÚmin_lldeltar   )ÚcopyÚcutoffsÚabsr-   ÚaccÚiter)Úselfr<   s     r
   Ú__init__zCutoffChecker.__init__l   sq   € Ø—|’|‘~”~ˆŒØ�wÐÐÝ!$ W¨XÔ%6Ñ!7Ô!7Ð 7ˆG�HÑØ˜GÐ#Ð#Ý%(¨°Ô)?Ñ%@Ô%@ˆG�MÑ"ØˆŒØˆŒØˆŒ	ˆ	ˆ	r   c                 ób  — | j         }| xj        dz  c_        d|v r| j        |d         k    rdS t          j        j                             ||¦  «        }t          j        |¦  «        rdS d|v sd|v rGd|v r||d         k    rdS d|v r*| j        r#|| j        z
  t          |d         ¦  «        k    rdS || _        d|v sd|v rnt          j        j                             ||¦  «        }d|v r||d         k    rdS d|v r*| j
        r#|| j
        z
  t          |d         ¦  «        k    rdS || _
        dS d S )	Nr   Úmax_iterTr9   r:   Úmax_accÚmin_accdeltaF)r<   r?   ÚnltkÚclassifyÚutilr.   r&   Úisnanr-   r=   r>   )r@   r*   Ú
train_toksr<   Únew_llÚnew_accs         r
   ÚcheckzCutoffChecker.checkv   sy  € Ø”,ˆØˆ	Œ	�Q‰ˆ	Œ	Ø˜Ð Ð  T¤Y°'¸*Ô2EÒ%EÐ%EØ�4å”Ô#×2Ò2°:¸zÑJÔJˆÝŒ:�fÑÔð 	Ø�4à�wÐÐ -°7Ð":Ð":Ø˜7Ð"Ð" v°¸Ô1BÒ'BÐ'BØ�tà Ð(Ð(Ø”Gð )à˜tœwÑ&­3¨w°}Ô/EÑ+FÔ+FÒFÐFà�tØˆDŒGà˜ÐÐ >°WÐ#<Ð#<Ý”mÔ(×7Ò7¸
ÀJÑOÔOˆGØ˜GÐ#Ð#¨°7¸9Ô3EÒ(EÐ(EØ�tà 'Ð)Ð)Ø”Hð *à ¤Ñ(­S°¸Ô1HÑ-IÔ-IÒIÐIà�tØˆDŒHà�5ð $=Ð#<r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rA   rM   r   r   r
   r7   r7   c   s<   € € € € € ðð ðð ð ð!ð !ð !ð !ð !r   r7   c                 ó$  — i }d|d<   | d                               ¦   «         |d<   | d                               ¦   «         |d<   dD ]K}|                       ¦   «                              |¦  «        |d|z  <   ||                       ¦   «         v |d	|z  <   ŒL|S )
NTÚalwaysonr   Ú
startswithéÿÿÿÿÚendswithÚabcdefghijklmnopqrstuvwxyzú	count(%s)úhas(%s)©ÚlowerÚcount©ÚnameÚfeaturesÚletters      r
   Únames_demo_featuresra   Ÿ   s—   € Ø€HØ€HˆZÑØ! !œWŸ]š]™_œ_€Hˆ\ÑØ œ8Ÿ>š>Ñ+Ô+€HˆZÑØ.ð >ð >ˆØ)-¯ª©¬×);Ò);¸FÑ)CÔ)Cˆ�˜vÑ%Ñ&Ø'-°·²±´Ð'=ˆ�˜VÑ#Ñ$Ð$Ø€Or   c                 ó¼  — i }d|d<   | d                               ¦   «         dv |d<   | d                               ¦   «         dv |d<   dD ]“}|                       ¦   «                              |¦  «        |d	|z  <   ||                       ¦   «         v |d
|z  <   || d                               ¦   «         k    |d|z  <   || d                               ¦   «         k    |d|z  <   Œ”|S )NTrS   r   Úaeiouyzstartswith(vowel)rU   zendswith(vowel)rW   rX   rY   zstartswith(%s)zendswith(%s)rZ   r]   s      r
   Úbinary_names_demo_featuresrd   ª   sè   € Ø€HØ€HˆZÑØ$(¨¤G§M¢M¡O¤O°xÐ$?€HÐ Ñ!Ø"& r¤(§.¢.Ñ"2Ô"2°hÐ">€HÐÑØ.ð Gð GˆØ)-¯ª©¬×);Ò);¸FÑ)CÔ)Cˆ�˜vÑ%Ñ&Ø'-°·²±´Ð'=ˆ�˜VÑ#Ñ$Ø.4¸¸Q¼¿º¹¼Ò.GˆÐ! FÑ*Ñ+Ø,2°d¸2´h·n²nÑ6FÔ6FÒ,Fˆ� &Ñ(Ñ)Ð)Ø€Or   c           	      óú  ‡— dd l }ddlm} d„ |                     d¦  «        D ¦   «         d„ |                     d¦  «        D ¦   «         z   }|                     d¦  «         |                     |¦  «         |d d…         }|dd	…         }t          d
¦  «          | ˆfd„|D ¦   «         ¦  «        }t          d¦  «         t          |ˆfd„|D ¦   «         ¦  «        }t          d|z  ¦  «         	 ˆfd„|D ¦   «         }	|                     |	¦  «        }
d„ t          ||
¦  «        D ¦   «         }t          dt          |¦  «        t          |¦  «        z  z  ¦  «         t          ¦   «          t          d¦  «         t          t          ||
¦  «        ¦  «        d d…         D ]N\  \  }}}|dk    rd}nd}t          |||                     d¦  «        |                     d¦  «        fz  ¦  «         ŒOn# t          $ r Y nw xY w|S )Nr   ©Únamesc                 ó   — g | ]}|d f‘ŒS )Úmaler   ©r   r^   s     r
   r    znames_demo.<locals>.<listcomp>½   s   € ÐCÐCÐC 4��v�ÐCÐCÐCr   úmale.txtc                 ó   — g | ]}|d f‘ŒS )Úfemaler   rj   s     r
   r    znames_demo.<locals>.<listcomp>½   s0   € ð Gð Gð GØ!ˆˆxÐðGð Gð Gr   ú
female.txté@â iˆ  i|  úTraining classifier...c                 ó0   •— g | ]\  }} ‰|¦  «        |f‘ŒS r   r   ©r   ÚnÚgr_   s      €r
   r    znames_demo.<locals>.<listcomp>É   ó*   ø€ Ð?Ð?Ð?©v°°1˜8˜8 A™;œ;¨Ð*Ð?Ð?Ð?r   úTesting classifier...c                 ó0   •— g | ]\  }} ‰|¦  «        |f‘ŒS r   r   rr   s      €r
   r    znames_demo.<locals>.<listcomp>Í   ó*   ø€ ÐDÐDÐD±V°a¸  ¨!¡¤¨aÐ 0ÐDÐDÐDr   úAccuracy: %6.4fc                 ó,   •— g | ]\  }} ‰|¦  «        ‘ŒS r   r   rr   s      €r
   r    znames_demo.<locals>.<listcomp>Ó   ó%   ø€ Ð;Ð;Ð;©F¨Q°˜H˜H Q™KœKÐ;Ð;Ð;r   c                 óD   — g | ]\  \  }}}|                      |¦  «        ‘ŒS r   ©Úlogprob©r   r^   r+   r#   s       r
   r    znames_demo.<locals>.<listcomp>Õ   ó-   € ÐQÐQÐQÑ&;¡|¨¨d°Uˆe�mŠm˜DÑ!Ô!ÐQÐQÐQr   úAvg. log likelihood: %6.4fúMUnseen Names      P(Male)  P(Female)
----------------------------------------é   ri   ú  %-15s *%6.4f   %6.4fú  %-15s  %6.4f  *%6.4frm   )ÚrandomÚnltk.corpusrg   ÚwordsÚseedÚshuffleÚprintr5   r$   r%   r(   r)   r   r"   ÚNotImplementedError)Útrainerr_   r†   rg   ÚnamelistÚtrainÚtestr*   r>   Útest_featuresetsÚpdistsr-   r^   Úgenderr#   Úfmts    `              r
   Ú
names_demor•   ·   so  ø€ Ø€M€M€Mà!Ð!Ð!Ð!Ð!Ð!ð DÐC¨5¯;ª;°zÑ+BÔ+BÐCÑCÔCð Gð GØ%*§[¢[°Ñ%>Ô%>ðGñ Gô Gñ €Hð
 ‡K‚K�ÑÔÐØ
‡N‚N�8ÑÔÐØ�U�d�UŒO€EØ�D˜�IÔ€Dõ 
Ð
"Ñ#Ô#Ð#Ø�Ð?Ð?Ð?Ð?¸Ð?Ñ?Ô?Ñ@Ô@€Jõ 
Ð
!Ñ"Ô"Ð"Ý
�:ÐDÐDÐDÐD¸tÐDÑDÔDÑ
EÔ
E€CÝ	Ð
˜cÑ
!Ñ"Ô"Ð"ðØ;Ð;Ð;Ð;°dÐ;Ñ;Ô;ÐØ×.Ò.Ð/?Ñ@Ô@ˆØQÐQ½sÀ4ÈÑ?PÔ?PÐQÑQÔQˆÝÐ*­c°"©g¬g½¸D¹	¼	Ñ.AÑBÑCÔCÐCÝ‰ŒˆÝÐAÑBÔBÐBÝ'+­C°°fÑ,=Ô,=Ñ'>Ô'>¸rÀ¸rÔ'Bð 	Jð 	JÑ#‰^ˆd�F˜UØ˜ÒÐØ.��à.�Ý�#˜˜uŸzšz¨&Ñ1Ô1°5·:²:¸hÑ3GÔ3GÐHÑHÑIÔIÐIÐIð	Jøõ ð ð ð Øˆðøøøð Ðs   Ã-C=G+ Ç+
G8Ç7G8c           	      ó”  ‡— dd l }ddlm} |                     d¦  «        }|                     d¦  «        }|                     d¦  «         |                     |¦  «         |                     |¦  «         t          ‰|d d…         ¦  «        }t          ‰|dd…         |d d…         z   ¦  «        }d	„ |dd
…         D ¦   «         d„ |dd…         D ¦   «         z   }|                     |¦  «         t          d¦  «          | ||¦  «        }	t          d¦  «         t          |	ˆfd„|D ¦   «         ¦  «        }
t          d|
z  ¦  «         	 ˆfd„|D ¦   «         }|	 	                    |¦  «        }d„ t          ||¦  «        D ¦   «         }t          dt          |¦  «        t          |¦  «        z  z  ¦  «         t          ¦   «          t          d¦  «         t          ||¦  «        d d…         D ]N\  \  }}}|dk    rd}nd}t          |||                     d¦  «        |                     d¦  «        fz  ¦  «         ŒOn# t          $ r Y nw xY w|	S )Nr   rf   rk   rn   iñû	 iÐ  iÄ	  iô  c                 ó   — g | ]}|d f‘ŒS )Tr   rj   s     r
   r    z&partial_names_demo.<locals>.<listcomp>ù   s   € Ð;Ð;Ð;˜TˆT�4ˆLÐ;Ð;Ð;r   i¾
  c                 ó   — g | ]}|d f‘ŒS )Fr   rj   s     r
   r    z&partial_names_demo.<locals>.<listcomp>ù   s)   € ð ?ð ?ð ?Øˆˆuˆð?ð ?ð ?r   iî  rp   rv   c                 ó0   •— g | ]\  }} ‰|¦  «        |f‘ŒS r   r   ©r   rs   Úmr_   s      €r
   r    z&partial_names_demo.<locals>.<listcomp>  rx   r   ry   c                 ó,   •— g | ]\  }} ‰|¦  «        ‘ŒS r   r   rš   s      €r
   r    z&partial_names_demo.<locals>.<listcomp>  r{   r   c                 óD   — g | ]\  \  }}}|                      |¦  «        ‘ŒS r   r}   r   s       r
   r    z&partial_names_demo.<locals>.<listcomp>  r€   r   r�   r‚   rƒ   Tr„   r…   F)r†   r‡   rg   rˆ   r‰   rŠ   Úmapr‹   r5   r$   r%   r(   r)   r"   rŒ   )r�   r_   r†   rg   Ú
male_namesÚfemale_namesÚpositiveÚ	unlabeledr�   r*   r>   r‘   r’   r-   r^   Úis_maler#   r”   s    `                r
   Úpartial_names_demor¤   æ   s³  ø€ Ø€M€M€Mà!Ð!Ð!Ð!Ð!Ð!à—’˜ZÑ(Ô(€JØ—;’;˜|Ñ,Ô,€Là
‡K‚K�ÑÔÐØ
‡N‚N�:ÑÔÐØ
‡N‚N�<Ñ Ô Ð õ �8˜Z¨¨¨Ô.Ñ/Ô/€Hõ �H˜j¨¨d¨Ô3°lÀ4ÀCÀ4Ô6HÑHÑIÔI€Ið <Ð; Z°°T°	Ô%:Ð;Ñ;Ô;ð ?ð ?Ø".¨s°3¨wÔ"7ð?ñ ?ô ?ñ €Dð ‡N‚N�4ÑÔÐõ 
Ð
"Ñ#Ô#Ð#Ø�˜ 9Ñ-Ô-€Jõ 
Ð
!Ñ"Ô"Ð"Ý
�:ÐDÐDÐDÐD¸tÐDÑDÔDÑ
EÔ
E€CÝ	Ð
˜cÑ
!Ñ"Ô"Ð"ðØ;Ð;Ð;Ð;°dÐ;Ñ;Ô;ÐØ×.Ò.Ð/?Ñ@Ô@ˆØQÐQ½sÀ4ÈÑ?PÔ?PÐQÑQÔQˆÝÐ*­c°"©g¬g½¸D¹	¼	Ñ.AÑBÑCÔCÐCÝ‰ŒˆÝÐAÑBÔBÐBÝ(+¨D°&Ñ(9Ô(9¸"¸1¸"Ô(=ð 	Eð 	EÑ$‰_ˆd�G˜eØ˜$ŠˆØ.��à.�Ý�#˜˜uŸzšz¨$Ñ/Ô/°·²¸EÑ1BÔ1BÐCÑCÑDÔDÐDÐDð	Eøõ ð ð ð Øˆðøøøð Ðs   ÅC0H8 È8
IÉIéè  c                 ó   ‡— dd l }ddlm} t          d¦  «         |t          vr'd„ |                     |¦  «        D ¦   «         t          |<   t          |         d d …         }|t          |¦  «        k    rt          |¦  «        }t          d„ |D ¦   «         ¦  «        }t          dd                     |¦  «        z   ¦  «         t          d¦  «         | 	                    d	¦  «         | 
                    |¦  «         |d t          d
|z  ¦  «        …         }|t          d
|z  ¦  «        |…         }	t          d¦  «          | ˆfd„|D ¦   «         ¦  «        }
t          d¦  «         t          |
ˆfd„|	D ¦   «         ¦  «        }t          d|z  ¦  «         	 ˆfd„|	D ¦   «         }|
                     |¦  «        }d„ t          |	|¦  «        D ¦   «         }t          dt          |¦  «        t          |	¦  «        z  z  ¦  «         n# t           $ r Y nw xY w|
S )Nr   )ÚsensevalzReading data...c                 ó,   — g | ]}||j         d          f‘ŒS )r   )Úsenses)r   Úis     r
   r    zwsd_demo.<locals>.<listcomp>*  s#   € ÐPÐPÐP°!˜a ¤¨!¤Ð-ÐPÐPÐPr   c                 ó   — h | ]\  }}|’ŒS r   r   )r   rª   r   s      r
   r   zwsd_demo.<locals>.<setcomp>.  s   € Ð-Ð-Ð-™˜!˜Q�1Ð-Ð-Ð-r   z
  Senses: Ú zSplitting into test & train...ro   gš™™™™™é?rp   c                 ó0   •— g | ]\  }} ‰|¦  «        |f‘ŒS r   r   ©r   rª   r   r_   s      €r
   r    zwsd_demo.<locals>.<listcomp>:  ru   r   rv   c                 ó0   •— g | ]\  }} ‰|¦  «        |f‘ŒS r   r   r®   s      €r
   r    zwsd_demo.<locals>.<listcomp>>  rx   r   ry   c                 ó,   •— g | ]\  }} ‰|¦  «        ‘ŒS r   r   )r   rª   rs   r_   s      €r
   r    zwsd_demo.<locals>.<listcomp>D  r{   r   c                 óD   — g | ]\  \  }}}|                      |¦  «        ‘ŒS r   r}   r   s       r
   r    zwsd_demo.<locals>.<listcomp>F  r€   r   r�   )r†   r‡   r§   r‹   Ú_inst_cacheÚ	instancesr)   r   Újoinr‰   rŠ   Úintr5   r$   r%   r(   rŒ   )r�   Úwordr_   rs   r†   r§   r³   r©   r�   r�   r*   r>   r‘   r’   r-   s     `            r
   Úwsd_demor·   !  sN  ø€ Ø€M€M€Mà$Ð$Ð$Ð$Ð$Ð$õ 
Ð
ÑÔÐà•;ÐÐØPÐP°x×7IÒ7IÈ$Ñ7OÔ7OÐPÑPÔP��DÑÝ˜DÔ! ! ! !Ô$€IØ�3ˆy‰>Œ>ÒÐÝ�	‰NŒNˆÝÐ-Ð- 9Ð-Ñ-Ô-Ñ.Ô.€FÝ	ˆ,˜Ÿš &Ñ)Ô)Ñ
)Ñ*Ô*Ð*õ 
Ð
*Ñ+Ô+Ð+Ø
‡K‚K�ÑÔÐØ
‡N‚N�9ÑÔÐØ�n�˜C !™G™œ�nÔ%€EØ•S˜˜q™‘\”\ AÐ%Ô&€Dõ 
Ð
"Ñ#Ô#Ð#Ø�Ð?Ð?Ð?Ð?¸Ð?Ñ?Ô?Ñ@Ô@€Jõ 
Ð
!Ñ"Ô"Ð"Ý
�:ÐDÐDÐDÐD¸tÐDÑDÔDÑ
EÔ
E€CÝ	Ð
˜cÑ
!Ñ"Ô"Ð"ðØ;Ð;Ð;Ð;°dÐ;Ñ;Ô;ÐØ×.Ò.Ð/?Ñ@Ô@ˆØQÐQ½sÀ4ÈÑ?PÔ?PÐQÑQÔQˆÝÐ*­c°"©g¬g½¸D¹	¼	Ñ.AÑBÑCÔCÐCÐCøÝð ð ð Øˆðøøøð Ðs   ÆA,G> Ç>
HÈ
Hc                  óx   — 	 t            dS # t          $ r$} t          d¦  «        }t          |¦  «        | ‚d} ~ ww xY w)z8
    Checks whether the MEGAM binary is configured.
    z\Please configure your megam binary first, e.g.
>>> nltk.config_megam('/usr/bin/local/megam')N)Ú
_megam_binÚ	NameErrorÚstr)ÚeÚerr_msgs     r
   Úcheck_megam_configr¾   O  sU   € ð(Ýˆ
ˆ
ˆ
øÝð (ð (ð (Ýð<ñ
ô 
ˆõ ˜Ñ Ô  aÐ'øøøøð(øøøs   ‚ ‹
9•4´9)N)r¥   )rQ   r&   Únltk.classify.utilrF   Ú	nltk.utilr   r   r   r.   r5   r7   ra   rd   r•   r¤   r²   r·   r¾   r   r   r
   ú<module>rÁ      s,  ððð ð €€€ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð*+ð *+ð *+ð *+ðZ	5ð 	5ð 	5ð'ð 'ð 'ðð ð ð4ð 4ð 4ð 4ð 4ñ 4ô 4ð 4ðxð ð ð
ð 
ð 
ð "5ð ,ð ,ð ,ð ,ð^ *=ð 5ð 5ð 5ð 5ðp €ð+ð +ð +ð +ð\(ð (ð (ð (ð (r   