§
    €zIfH9  ã                   ó¦  — d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlm Z  d dl!m"Z" dZ#dZ$d	Z%d
Z&i dd„ “dd„ “dd„ “dd„ “dd„ “dd„ “dd„ “d
d„ “dd„ “dd„ “dd„ “d d!„ “d"d#„ “d$d%„ “d&d'„ “d(d)„ “d*d+„ “Z' G d,„ d-¦  «        Z( G d.„ d/¦  «        Z)d0„ Z*e+d1k    r
 e*¦   «          d2gZ,dS )3é    N)ÚENDÚLEFTÚSUNKENÚButtonÚFrameÚIntVarÚLabelÚMenuÚ
OptionMenuÚ	ScrollbarÚ	StringVarÚTextÚTk)ÚFont)ÚalpinoÚbrownÚcess_catÚcess_espÚflorestaÚindianÚ
mac_morphoÚmachadoÚnps_chatÚsinica_treebankÚtreebank)ÚFreqDist)Úin_idlez<<CL_EVENT>>z<<ELC_EVENT>>éd   zEnglish: Brown Corpus (Humor)zCatalan: CESS-CAT Corpusc                  ó(   — t          j        ¦   «         S ©N)r   Úwords© ó    úM/var/www/piapp/venv/lib/python3.11/site-packages/nltk/app/collocations_app.pyú<lambda>r%   3   ó   € ­¬Ñ(8Ô(8€ r#   zEnglish: Brown Corpusc                  ó(   — t          j        ¦   «         S r    ©r   r!   r"   r#   r$   r%   r%   4   s   € ¥U¤[¡]¤]€ r#   zEnglish: Brown Corpus (Press)c                  ó0   — t          j        g d¢¬¦  «        S )N)ÚnewsÚ	editorialÚreviews©Ú
categoriesr(   r"   r#   r$   r%   r%   5   s    € ­U¬[Ø3Ð3Ð3ð.ñ .ô .€ r#   z English: Brown Corpus (Religion)c                  ó,   — t          j        d¬¦  «        S )NÚreligionr-   r(   r"   r#   r$   r%   r%   8   s   € µ´ÀzÐ0RÑ0RÔ0R€ r#   zEnglish: Brown Corpus (Learned)c                  ó,   — t          j        d¬¦  «        S )NÚlearnedr-   r(   r"   r#   r$   r%   r%   9   ó   € ­u¬{ÀiÐ/PÑ/PÔ/P€ r#   z'English: Brown Corpus (Science Fiction)c                  ó,   — t          j        d¬¦  «        S )NÚscience_fictionr-   r(   r"   r#   r$   r%   r%   :   s   € µu´{Ø$ð8ñ 8ô 8€ r#   zEnglish: Brown Corpus (Romance)c                  ó,   — t          j        d¬¦  «        S )NÚromancer-   r(   r"   r#   r$   r%   r%   =   r3   r#   c                  ó,   — t          j        d¬¦  «        S )NÚhumorr-   r(   r"   r#   r$   r%   r%   >   s   € ­U¬[ÀGÐ-LÑ-LÔ-L€ r#   zEnglish: NPS Chat Corpusc                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   ?   r&   r#   z#English: Wall Street Journal Corpusc                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   @   s   € µ8´>Ñ3CÔ3C€ r#   zChinese: Sinica Corpusc                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   A   s   € ¥oÔ&;Ñ&=Ô&=€ r#   zDutch: Alpino Corpusc                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   B   s   € ¥F¤L¡N¤N€ r#   zHindi: Indian Languages Corpusc                  ó,   — t          j        d¬¦  «        S )Nz	hindi.pos)Úfiles)r   r!   r"   r#   r$   r%   r%   C   s   € ­f¬lÀÐ.MÑ.MÔ.M€ r#   z&Portuguese: Floresta Corpus (Portugal)c                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   D   s   € µh´nÑ6FÔ6F€ r#   z&Portuguese: MAC-MORPHO Corpus (Brazil)c                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   E   s   € µjÔ6FÑ6HÔ6H€ r#   z#Portuguese: Machado Corpus (Brazil)c                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   F   s   € µ7´=±?´?€ r#   zSpanish: CESS-ESP Corpusc                  ó(   — t          j        ¦   «         S r    )r   r!   r"   r#   r$   r%   r%   G   r&   r#   c                   ó¨   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚCollocationsViewz#FFFc                 ó°  — t          j        ¦   «         | _        t          | j        ¦  «        | _        t          ¦   «         | _        |                      | j        ¦  «         |                      ¦   «          |  	                    | j        ¦  «         |  
                    | j        j        ¦  «         | j                             t          | j        ¦  «        | _        d S r    )ÚqÚQueueÚqueueÚCollocationsModelÚmodelr   ÚtopÚ	_init_topÚ_init_menubarÚ_init_widgetsÚload_corpusÚDEFAULT_CORPUSÚafterÚPOLL_INTERVALÚ_poll©Úselfs    r$   Ú__init__zCollocationsView.__init__N   s�   € Ý”W‘Y”YˆŒ
Ý& t¤zÑ2Ô2ˆŒ
Ý‘4”4ˆŒØ�Š�t”xÑ Ô Ð Ø×ÒÑÔÐØ×Ò˜4œ8Ñ$Ô$Ð$Ø×Ò˜œÔ2Ñ3Ô3Ð3Ø”X—^’^¥M°4´:Ñ>Ô>ˆŒ
ˆ
ˆ
r#   c                 óò   — |                      d¦  «         |                     d¦  «         |                     d| j        ¦  «         |                     d| j        ¦  «         |                     dd¦  «         d S )Nz550x650+50+50zNLTK Collocations Listz<Control-q>ÚWM_DELETE_WINDOWi&  iŠ  )ÚgeometryÚtitleÚbindÚdestroyÚprotocolÚminsize)rV   rL   s     r$   rM   zCollocationsView._init_topX   sn   € Ø�Š�_Ñ%Ô%Ð%Ø�	Š	Ð*Ñ+Ô+Ð+Ø�Š� ¤Ñ-Ô-Ð-Ø�ŠÐ'¨¬Ñ6Ô6Ð6Ø�Š�C˜ÑÔÐÐÐr#   c           	      ód  — t          |t          | j        ddd¬¦  «        ¦  «        | _        |                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         | j                             dd¬¦  «         d S )Né   )Ú
backgroundÚpadxÚpadyÚborderÚbothT)ÚfillÚexpand)	r   ÚdictÚ_BACKGROUND_COLOURÚ
main_frameÚ_init_corpus_selectÚ_init_results_boxÚ_init_pagingÚ_init_statusÚpack©rV   Úparents     r$   rO   zCollocationsView._init_widgets_   s¨   € ÝØ•D DÔ$;À!È!ÐTUÐVÑVÔVñ
ô 
ˆŒð 	× Ò  ¤Ñ1Ô1Ð1Ø×Ò˜tœÑ/Ô/Ð/Ø×Ò˜$œ/Ñ*Ô*Ð*Ø×Ò˜$œ/Ñ*Ô*Ð*ØŒ×Ò &°ÐÑ6Ô6Ð6Ð6Ð6r#   c           	      ó„  — t          || j        ¬¦  «        }t          |¦  «        | _        | j                             | j        j        ¦  «         t          |t          d| j        ddd¬¦  «         	                    d¬¦  «         t          | j        j                             ¦   «         ¦  «                             | j        j        ¦  «        }t          || j        | j        j        g| j                             ¦   «         ¢R d	| j        iŽ}d|d
<   d|d<   | 	                    d¬¦  «         | 	                    ddd¬¦  «         d S )N©rb   z	 Corpus: é   ra   r   )ÚjustifyÚtextrb   rc   rd   re   Úleft)ÚsideÚcommandÚborderwidthÚhighlightthicknessrL   ÚxÚn©ry   rg   Úanchor)r   rj   r   ÚvarÚsetrK   rQ   r	   r   rp   ÚlistÚCORPORAÚkeysÚremover   Únon_default_corporaÚcorpus_selected)rV   rr   Ú
innerframeÚother_corporaÚoms        r$   rl   z$CollocationsView._init_corpus_selecti   sL  € Ý˜6¨dÔ.EÐFÑFÔFˆ
Ý˜ZÑ(Ô(ˆŒØŒ�Š�T”ZÔ.Ñ/Ô/Ð/ÝØÝØØÔ.ØØØð	
ñ 	
ô 	
÷ Š$�Fˆ$Ñ
Ô
Ð
å˜TœZÔ/×4Ò4Ñ6Ô6Ñ7Ô7×>Ò>ØŒJÔ%ñ
ô 
ˆõ ØØŒHØŒJÔ%ð
ð
 ŒZ×+Ò+Ñ-Ô-ð
ð 
ð 
ð Ô(ð	
ð 
ˆð ˆˆ=ÑØ#$ˆÐÑ Ø
�Š�VˆÑÔÐØ�Š˜U¨°SˆÑ9Ô9Ð9Ð9Ð9r#   c           	      ó’   — t          |t          t          | j        ddd¬¦  «        | _        | j                             dd¬¦  «         d S )Nr   ra   )rv   Úreliefrb   re   rc   rd   rL   Úsw©ry   r€   )r	   r   r   rj   Ústatusrp   rq   s     r$   ro   zCollocationsView._init_status†   sS   € ÝØÝÝØÔ.ØØØð
ñ 
ô 
ˆŒð 	Œ×Ò˜e¨DÐÑ1Ô1Ð1Ð1Ð1r#   c                 óÌ  — t          | j        ¦  «        | _        t          | j        ¦  «        }t          |dd¬¦  «        }|                     dd| j        d¬¦  «         |                     dd|¬¦  «         t          |d¬	¦  «        }t          |d¬	¦  «        }|                     d
| j        dd| j        ¬¦  «         |                     d| j        dd| j        ¬¦  «         |                     d| j        dd| j        ¬¦  «         | 	                    d¦  «         |                     dd|¬¦  «         |                     dd|¬¦  «         | j         
                    |¬¦  «         d S )Nr   )Útearoffr{   ÚExitra   zCtrl-q)ÚlabelÚ	underlinerz   ÚacceleratorÚFile)r”   r•   Úmenu)r’   Ú20é   )r”   Úvariabler•   Úvaluerz   Ú50é2   Ú100r   zResult CountÚEdit)r˜   )r   rL   Ú_result_sizer
   Úadd_commandr]   Úadd_cascadeÚadd_radiobuttonÚset_result_sizeÚinvokeÚconfig)rV   ÚmenubarÚfilemenuÚeditmenuÚ
rescntmenus        r$   rN   zCollocationsView._init_menubar’   s   € Ý" 4¤8Ñ,Ô,ˆÔÝ�t”x‘.”.ˆå˜¨¸Ð:Ñ:Ô:ˆØ×ÒØ A¨t¬|Èð 	ñ 	
ô 	
ð 	
ð 	×Ò &°A¸HÐÑEÔEÐEå˜¨Ð+Ñ+Ô+ˆÝ˜(¨AÐ.Ñ.Ô.ˆ
Ø×"Ò"ØØÔ&ØØØÔ(ð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØØÔ&ØØØÔ(ð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØØÔ&ØØØÔ(ð 	#ñ 	
ô 	
ð 	
ð 	×Ò˜!ÑÔÐØ×Ò >¸QÀZÐÑPÔPÐPà×Ò &°A¸HÐÑEÔEÐEØŒ�Š˜WˆÑ%Ô%Ð%Ð%Ð%r#   c                 óL   — | j                              ¦   «         | j        _        d S r    )r¡   ÚgetrK   Úresult_count)rV   Úkwargss     r$   r¥   z CollocationsView.set_result_size¹   s!   € Ø"&Ô"3×"7Ò"7Ñ"9Ô"9ˆŒ
ÔÐÐr#   c                 ó  — t          |¦  «        }t          |¦  «        }t          |¦  «        }t          |d¬¦  «        }t          |dd¬¦  «        }t          |t          dd¬¦  «        dd|j        |j        d	d
dd¬¦
  «
        | _        | j                             ddd¬¦  «         |                     ddd¬¦  «         |                     | j        j        ¬¦  «         |                     dddd¬¦  «         |                     | j        j	        ¬¦  «         t          |d| j        ¬¦  «                             dd¬¦  «         |                     dddd¬¦  «         |                     ddd¬¦  «         |                     ddd¬¦  «         d S )Nra   )r{   Úhoriz)r{   ÚorientÚcourierÚ16)ÚfamilyÚsizeÚdisabledÚnoneÚ40r™   )	ÚfontÚstater{   ÚyscrollcommandÚxscrollcommandÚwrapÚwidthÚheightÚexportselectionrx   rf   T)ry   rg   rh   ÚyÚer   )rz   r}   Úw)ry   rg   rh   r€   z   )rw   rb   r�   rL   r~   ÚbottomÚs)r   r   r   r   r‚   Úresults_boxrp   r§   ÚyviewÚxviewr	   rj   )rV   rr   r‰   Úi1Úi2Ú
vscrollbarÚ
hscrollbars          r$   rm   z"CollocationsView._init_results_box¼   s¦  € Ý˜6‘]”]ˆ
Ý�:ÑÔˆÝ�:ÑÔˆÝ˜r¨qÐ1Ñ1Ô1ˆ
Ý˜r¨q¸ÐAÑAÔAˆ
ÝØÝ˜Y¨TÐ2Ñ2Ô2ØØØ%œ>Ø%œ>ØØØØð
ñ 
ô 
ˆÔð 	Ô×Ò 6°¸tÐÑDÔDÐDØ�Š˜V¨#°cˆÑ:Ô:Ð:Ø×Ò $Ô"2Ô"8ÐÑ9Ô9Ð9Ø�Š˜V¨#°dÀ3ˆÑGÔGÐGØ×Ò $Ô"2Ô"8ÐÑ9Ô9Ð9åˆb�u¨Ô)@ÐAÑAÔA×FÒFØ ð 	Gñ 	
ô 	
ð 	
ð 	�Š�U °¸SˆÑAÔAÐAØ
�Š�X C°ˆÑ4Ô4Ð4Ø�Š˜U¨¸ˆÑ=Ô=Ð=Ð=Ð=r#   c           	      ól  — t          || j        ¬¦  «        }t          |d| j        dddd¬¦  «        x| _        }|                     dd¬	¦  «         t          |d
| j        dddd¬¦  «        x| _        }|                     dd¬	¦  «         |                     dd¬¦  «         |                      ¦   «          d S )Nrt   ÚPreviousÚ10ra   r·   )rw   rz   r¿   r{   r|   r»   rx   Úcenterr�   ÚNextÚrightrL   rÂ   )ry   rg   )	r   rj   r   ÚpreviousÚprevrp   Ú__next__ÚnextÚreset_current_page)rV   rr   r‰   rÕ   r×   s        r$   rn   zCollocationsView._init_pagingÛ   sÝ   € Ý˜6¨dÔ.EÐFÑFÔFˆ
Ý!ØØØ”MØØØ Øð
ñ 
ô 
ð 	
ˆŒ	�Dð 	�	Š	�v hˆ	Ñ/Ô/Ð/Ý!ØØØ”MØØØ Øð
ñ 
ô 
ð 	
ˆŒ	�Dð 	�	Š	�w xˆ	Ñ0Ô0Ð0Ø�Š˜U¨ˆÑ-Ô-Ð-Ø×ÒÑ!Ô!Ð!Ð!Ð!r#   c                 ó   — d| _         d S ©Néÿÿÿÿ)Úcurrent_pagerU   s    r$   rØ   z#CollocationsView.reset_current_pageô   s   € ØˆÔÐÐr#   c                 ó@  — 	 | j                              d¬¦  «        }|t          k    r|                      |¦  «         n6|t          k    r|                      |¦  «         n# t          j        $ r Y nw xY w| j         	                    t          | j        ¦  «        | _	        d S )NF)Úblock)rI   r­   ÚCORPUS_LOADED_EVENTÚhandle_corpus_loadedÚERROR_LOADING_CORPUS_EVENTÚhandle_error_loading_corpusrG   ÚEmptyrL   rR   rS   rT   ©rV   Úevents     r$   rT   zCollocationsView._poll÷   s¥   € ð	8Ø”J—N’N¨�NÑ/Ô/ˆEð Õ+Ò+Ð+Ø×)Ò)¨%Ñ0Ô0Ð0Ð0ØÕ4Ò4Ð4Ø×0Ò0°Ñ7Ô7Ð7øøõ Œwð 	ð 	ð 	ØˆDð	øøøð ”X—^’^¥M°4´:Ñ>Ô>ˆŒ
ˆ
ˆ
s   ‚A ÁA1Á0A1c                 óî   — d| j                              ¦   «         z   | j        d<   |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          d S )NzError in loading rw   )r�   r­   r�   Úunfreeze_editableÚclear_results_boxÚfreeze_editablerØ   rä   s     r$   râ   z,CollocationsView.handle_error_loading_corpus  sk   € Ø1°D´H·L²L±N´NÑBˆŒ�FÑØ×ÒÑ Ô Ð Ø×ÒÑ Ô Ð Ø×ÒÑÔÐØ×ÒÑ!Ô!Ð!Ð!Ð!r#   c                 óT  — | j                              ¦   «         dz   | j        d<   |                      ¦   «          |                      ¦   «          |                      ¦   «          | j                             | j        dz   ¦  «        }|  	                    |¦  «         | xj        dz  c_        d S )Nz
 is loadedrw   ra   )
r�   r­   r�   rç   rè   rØ   rK   r×   rÜ   Úwrite_results)rV   rå   Úcollocationss      r$   rà   z%CollocationsView.handle_corpus_loaded
  sœ   € Ø"œhŸlšl™nœn¨|Ñ;ˆŒ�FÑØ×ÒÑ Ô Ð Ø×ÒÑ Ô Ð Ø×ÒÑ!Ô!Ð!à”z—’ tÔ'8¸1Ñ'<Ñ=Ô=ˆØ×Ò˜<Ñ(Ô(Ð(ØÐÔ˜QÑÐÔÐÐr#   c                 ób   — | j                              ¦   «         }|                      |¦  «         d S r    )r�   r­   rP   )rV   ÚargsÚnew_selections      r$   rˆ   z CollocationsView.corpus_selected  s+   € ØœŸš™œˆØ×Ò˜Ñ'Ô'Ð'Ð'Ð'r#   c                 ó
  — |                       ¦   «          | j                             | j        dz
  ¦  «        }| j        dz
  | _        |                      ¦   «          |                      |¦  «         |                      ¦   «          d S ©Nra   )ré   rK   rÕ   rÜ   rè   rë   rç   ©rV   rì   s     r$   rÔ   zCollocationsView.previous  s}   € Ø×ÒÑÔÐØ”z—’ tÔ'8¸1Ñ'<Ñ=Ô=ˆØ Ô-°Ñ1ˆÔØ×ÒÑ Ô Ð Ø×Ò˜<Ñ(Ô(Ð(Ø×ÒÑ Ô Ð Ð Ð r#   c                 ó  — |                       ¦   «          | j                             | j        dz   ¦  «        }|                      ¦   «          |                      |¦  «         | xj        dz  c_        |                      ¦   «          d S rñ   )ré   rK   r×   rÜ   rè   rë   rç   rò   s     r$   rÖ   zCollocationsView.__next__   s�   € Ø×ÒÑÔÐØ”z—’ tÔ'8¸1Ñ'<Ñ=Ô=ˆØ×ÒÑ Ô Ð Ø×Ò˜<Ñ(Ô(Ð(ØÐÔ˜QÑÐÔØ×ÒÑ Ô Ð Ð Ð r#   c                 ó¦   — | j         j        |k    r@d|z   dz   | j        d<   |                      ¦   «          | j                              |¦  «         d S d S )NzLoading z...rw   )rK   Úselected_corpusr�   ré   rP   )rV   Ú	selections     r$   rP   zCollocationsView.load_corpus(  s^   € ØŒ:Ô%¨Ò2Ð2Ø",¨yÑ"8¸5Ñ"@ˆDŒK˜ÑØ× Ò Ñ"Ô"Ð"ØŒJ×"Ò" 9Ñ-Ô-Ð-Ð-Ð-ð 3Ð2r#   c                 ó.   — d| j         d<   d| j        d<   d S )Nr·   r»   )rÕ   r×   rU   s    r$   ré   z CollocationsView.freeze_editable.  s    € Ø'ˆŒ	�'ÑØ'ˆŒ	�'ÑÐÐr#   c                 ón   — d| j         d<   | j                              dt          ¦  «         d| j         d<   d S )NÚnormalr»   z1.0r·   )rÇ   Údeleter   rU   s    r$   rè   z"CollocationsView.clear_results_box2  s;   € Ø$,ˆÔ˜Ñ!ØÔ×Ò ¥sÑ+Ô+Ð+Ø$.ˆÔ˜Ñ!Ð!Ð!r#   c                 ó>   — | j                              |d¬¦  «         d S )NÚtail)Úwhen)rL   Úevent_generaterä   s     r$   Ú
fire_eventzCollocationsView.fire_event7  s#   € àŒ×Ò ¨FÐÑ3Ô3Ð3Ð3Ð3r#   c                 ó–   — | j         €d S | j                              | j        ¦  «         | j                              ¦   «          d | _         d S r    )rL   Úafter_cancelrR   r]   )rV   rÃ   s     r$   r]   zCollocationsView.destroy;  sF   € ØŒ8ÐØˆFØŒ×Ò˜dœjÑ)Ô)Ð)ØŒ×ÒÑÔÐØˆŒˆˆr#   c                 óJ   — t          ¦   «         rd S  | j        j        |i |¤Ž d S r    )r   rL   Úmainloop)rV   rî   r¯   s      r$   r  zCollocationsView.mainloopB  s3   € Ý‰9Œ9ð 	ØˆFØˆŒÔ˜4Ð* 6Ð*Ð*Ð*Ð*Ð*r#   c                 ó.   — |                       ¦   «          d S r    )Úset_paging_button_statesrU   s    r$   rç   z"CollocationsView.unfreeze_editableG  s   € Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'r#   c                 óÆ   — | j         dk    s| j         dk    rd| j        d<   n
d| j        d<   | j                             | j         ¦  «        rd| j        d<   d S d| j        d<   d S )NrÛ   r   r·   r»   rù   )rÜ   rÕ   rK   Úis_last_pager×   rU   s    r$   r  z)CollocationsView.set_paging_button_statesJ  sw   € ØÔ Ò"Ð" dÔ&7¸1Ò&<Ð&<Ø!+ˆDŒI�gÑÐà!)ˆDŒI�gÑØŒ:×"Ò" 4Ô#4Ñ5Ô5ð 	*Ø!+ˆDŒI�gÑÐÐà!)ˆDŒI�gÑÐÐr#   c                 óÆ   — d| j         d<   d}|D ]G}| j                              t          |¦  «        dz   |d         dz   |d         z   dz   ¦  «         |dz  }ŒHd| j         d<   d S )	Nrù   r»   ra   z.0r   ú ú
r·   )rÇ   ÚinsertÚstr)rV   ÚresultsÚrowÚeachs       r$   rë   zCollocationsView.write_resultsT  sz   € Ø$,ˆÔ˜Ñ!ØˆØð 	ð 	ˆDØÔ×#Ò#¥C¨¡H¤H¨t¡O°T¸!´W¸s±]ÀTÈ!ÄWÑ5LÈtÑ5SÑTÔTÐTØ�1‰HˆCˆCØ$.ˆÔ˜Ñ!Ð!Ð!r#   N)Ú__name__Ú
__module__Ú__qualname__rj   rW   rM   rO   rl   ro   rN   r¥   rm   rn   rØ   rT   râ   rà   rˆ   rÔ   rÖ   rP   ré   rè   rÿ   r]   r  rç   r  rë   r"   r#   r$   rE   rE   K   s’  € € € € € ØÐð?ð ?ð ?ðð ð ð7ð 7ð 7ð:ð :ð :ð:
2ð 
2ð 
2ð%&ð %&ð %&ðN:ð :ð :ð>ð >ð >ð>"ð "ð "ð2ð ð ð
?ð 
?ð 
?ð"ð "ð "ðð ð ð(ð (ð (ð!ð !ð !ð!ð !ð !ð.ð .ð .ð(ð (ð (ð/ð /ð /ð
4ð 4ð 4ðð ð ð+ð +ð +ð
(ð (ð (ð*ð *ð *ð/ð /ð /ð /ð /r#   rE   c                   ó^   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	 G d„ d	e
j        ¦  «        Zd
S )rJ   c                 ó–   — d | _         d | _        d | _        t          | _        t
          | _        || _        |                      ¦   «          d S r    )	r®   rõ   rì   Ú_CORPORAr„   Ú_DEFAULTrQ   rI   Úreset_results)rV   rI   s     r$   rW   zCollocationsModel.__init__^  sH   € Ø ˆÔØ#ˆÔØ ˆÔÝˆŒÝ&ˆÔØˆŒ
Ø×ÒÑÔÐÐÐr#   c                 ó"   — g | _         d| _        d S )Nr   )Úresult_pagesÚresults_returnedrU   s    r$   r  zCollocationsModel.reset_resultsg  s   € ØˆÔØ !ˆÔÐÐr#   c                 óž   — || _         d | _        |                      || ¦  «        }|                     ¦   «          |                      ¦   «          d S r    )rõ   rì   Ú
LoadCorpusÚstartr  )rV   ÚnameÚrunner_threads      r$   rP   zCollocationsModel.load_corpusk  sO   € Ø#ˆÔØ ˆÔØŸš¨¨dÑ3Ô3ˆØ×ÒÑÔÐØ×ÒÑÔÐÐÐr#   c                 óØ   — g }|                      t          | j                             ¦   «         ¦  «        ¦  «         |                     | j        ¦  «         |                     ¦   «          |S r    )Úextendrƒ   r„   r…   r†   rQ   Úsort)rV   Úcopys     r$   r‡   z%CollocationsModel.non_default_corporar  sV   € ØˆØ�Š•D˜œ×*Ò*Ñ,Ô,Ñ-Ô-Ñ.Ô.Ð.Ø�Š�DÔ'Ñ(Ô(Ð(Ø�	Š	‰ŒˆØˆr#   c                 ó°   — |t          | j        ¦  «        k     rdS | j        |t          | j        ¦  «        z
  | j        z  z   t          | j        ¦  «        k    S )NF)Úlenr  r  r®   rì   )rV   Únumbers     r$   r  zCollocationsModel.is_last_pagey  s^   € Ø•C˜Ô)Ñ*Ô*Ò*Ð*Ø�5ØÔ$Ø•S˜Ô*Ñ+Ô+Ñ+ØÔñ(ñ å!$ TÔ%6Ñ!7Ô!7ò8ð 	8r#   c                 óB  — t          | j        ¦  «        dz
  |k     rxt          |t          | j        ¦  «        dz
  z
  ¦  «        D ]P}| j                             | j        | j        | j        | j        z   …         ¦  «         | xj        | j        z  c_        ŒQ| j        |         S rñ   )r%  r  ÚrangeÚappendrì   r  r®   )rV   ÚpageÚis      r$   r×   zCollocationsModel.next€  s´   € Ý�Ô!Ñ"Ô" QÑ&¨$Ò.Ð.Ý˜4¥3 tÔ'8Ñ#9Ô#9¸AÑ#=Ñ>Ñ?Ô?ð ;ð ;�ØÔ!×(Ò(ØÔ%ØÔ-°Ô0EØÔ+ñ1,ð ,ôñô ð ð Ð%Ô%¨Ô):Ñ:Ð%Ô%Ð%ØÔ  Ô&Ð&r#   c                 ó,   — |dk    rg S | j         |         S rÚ   )r  )rV   r*  s     r$   rÕ   zCollocationsModel.prevŒ  s   € Ø�2Š:ˆ:ØˆIØÔ  Ô&Ð&r#   c                   ó   — e Zd Zd„ Zd„ ZdS )úCollocationsModel.LoadCorpusc                 ób   — t           j                             | ¦  «         ||c| _        | _        d S r    )Ú	threadingÚThreadrW   rK   r  )rV   r  rK   s      r$   rW   z%CollocationsModel.LoadCorpus.__init__’  s-   € ÝÔ×%Ò% dÑ+Ô+Ð+Ø$)¨4Ð!ˆDŒJ˜œ	˜	˜	r#   c                 óš  ‡‡‡— 	  | j         j        | j                 ¦   «         }ddlm} d„ |D ¦   «         Št          ˆfd„t          t          ‰¦  «        dz
  ¦  «        D ¦   «         ¦  «        Št          ‰¦  «        Šˆˆfd„‰D ¦   «         }|                      |d¦  «        d¬¦  «         t          t           |d¦  «        |¦  «        ¦  «        | j         _        | j         j                             t          ¦  «         d S # t          $ r>}t!          |¦  «         | j         j                             t"          ¦  «         Y d }~d S d }~ww xY w)	Nr   )Ú
itemgetterc                 ó8   — g | ]}t          |¦  «        d k    ¯|‘ŒS )ru   )r%  )Ú.0rÄ   s     r$   ú
<listcomp>z4CollocationsModel.LoadCorpus.run.<locals>.<listcomp>›  s#   € Ð7Ð7Ð7˜a­C°©F¬F°QªJ¨J˜¨J¨J¨Jr#   c              3   óL   •K  — | ]}t          ‰||d z   …         ¦  «        V — ŒdS )ru   N)Útuple)r5  r+  rw   s     €r$   ú	<genexpr>z3CollocationsModel.LoadCorpus.run.<locals>.<genexpr>œ  s7   øè è € ÐSÐS¸�e D¨¨Q°©U¨¤OÑ4Ô4ÐSÐSÐSÐSÐSÐSr#   ra   c                 ó\   •— g | ](\  }}||f‰||f         d z  ‰|         ‰|         z  z  f‘Œ)S )é   r"   )r5  Úw1Úw2ÚfdÚvocabs      €€r$   r6  z4CollocationsModel.LoadCorpus.run.<locals>.<listcomp>ž  sU   ø€ ð ð ð á˜˜Bð ˜"�X˜r 2 r (œ|¨qÑ0°E¸"´IÀÀbÄ	Ñ4IÑJÐKðð ð r#   T)ÚkeyÚreverse)rK   r„   r  Úoperatorr3  r   r(  r%  r"  rƒ   Úmaprì   rI   Úputrß   Ú	ExceptionÚprintrá   )rV   r!   r3  ÚscoredrÃ   r>  rw   r?  s        @@@r$   Úrunz CollocationsModel.LoadCorpus.run–  st  øøø€ ðAØ5˜œ
Ô*¨4¬9Ô5Ñ7Ô7�Ø/Ð/Ð/Ð/Ð/Ð/à7Ð7 5Ð7Ñ7Ô7�ÝÐSÐSÐSÐS½eÅCÈÁIÄIÐPQÁMÑ>RÔ>RÐSÑSÔSÑSÔS�Ý  ™œ�ðð ð ð ð à"$ðñ ô �ð —’ 
 
¨1¡¤°t�Ñ<Ô<Ð<Ý*.­s°:°:¸a±=´=À&Ñ/IÔ/IÑ*JÔ*J�”
Ô'Ø”
Ô ×$Ò$Õ%8Ñ9Ô9Ð9Ð9Ð9øÝð Að Að AÝ�a‘”�Ø”
Ô ×$Ò$Õ%?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@øøøøðAøøøs   …C;D Ä
E
Ä3EÅE
N)r  r  r  rW   rH  r"   r#   r$   r  r.  ‘  s7   € € € € € ð	0ð 	0ð 	0ð	Að 	Að 	Að 	Að 	Ar#   r  N)r  r  r  rW   r  rP   r‡   r  r×   rÕ   r0  r1  r  r"   r#   r$   rJ   rJ   ]  s´   € € € € € ðð ð ð"ð "ð "ðð ð ðð ð ð8ð 8ð 8ð
'ð 
'ð 
'ð'ð 'ð 'ð
Að Að Að Að A�YÔ%ñ Aô Að Að Að Ar#   rJ   c                  óJ   — t          ¦   «         } |                      ¦   «          d S r    )rE   r  )Úcs    r$   ÚapprK  ®  s   € ÝÑÔ€AØ‡J‚J�L„L€L€L€Lr#   Ú__main__rK  )-rI   rG   r0  Útkinterr   r   r   r   r   r   r	   r
   r   r   r   r   r   Útkinter.fontr   Únltk.corpusr   r   r   r   r   r   r   r   r   r   r   Únltk.probabilityr   Ú	nltk.utilr   rß   rá   rS   r  r  rE   rJ   rK  r  Ú__all__r"   r#   r$   ú<module>rS     s>  ðð Ð Ð Ð Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à$Ð Ø,Ð Ø€à*€ðØÐ 8Ð 8ðàÐ2Ð2ðð $ð &ð &ðð 'Ð(RÐ(Rðð &Ð'PÐ'Pðð .ð 0ð 0ðð &Ð'PÐ'Pðð $Ð%LÐ%Lðð Ð 8Ð 8ðð *Ð+CÐ+Cðð Ð=Ð=ðð  Ð2Ð2ð!ð" %Ð&MÐ&Mð#ð$ -Ð.FÐ.Fð%ð& -Ð.HÐ.Hð'ð( *Ð+BÐ+Bð)ð* Ð 8Ð 8ð+€ð2O/ð O/ð O/ð O/ð O/ñ O/ô O/ð O/ðdJAð JAð JAð JAð JAñ JAô JAð JAðbð ð ð
 ˆzÒÐØ€C�E„E€Eàˆ'€€€r#   