
`]c           @   s  d  d l  m Z d  d l Z d  d l 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 m Z 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 6d   d 6d   d 6d   d 6d   d 6d   d 6d   d 6d   d 6d   d 6d   d 6d    d! 6d"   d# 6d$   d% 6d&   d' 6d(   d) 6d*   d+ 6d,   d- 6Z* d. f  d/     YZ+ d0 f  d1     YZ, d2   Z- e. d3 k re-   n  d4 g Z/ d S(5   i(   t   divisionN(   t   queue(   t   Font(   t   Buttont   ENDt   Framet   IntVart   LEFTt   Labelt   Menut
   OptionMenut   SUNKENt	   Scrollbart	   StringVart   Textt   Tk(   t   cess_catt   brownt   nps_chatt   treebankt   sinica_treebankt   alpinot   indiant   florestat
   mac_morphot   machadot   cess_esp(   t   in_idle(   t   FreqDists   <<CL_EVENT>>s   <<ELC_EVENT>>id   s   English: Brown Corpus (Humor)c           C   s
   t  j   S(   N(   R   t   words(    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyt   <lambda>7   t    s   Catalan: CESS-CAT Corpusc           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   8   R   s   English: Brown Corpusc           C   s   t  j d d d d g  S(   Nt
   categoriest   newst	   editorialt   reviews(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   9   s   	s   English: Brown Corpus (Press)c           C   s   t  j d d  S(   NR    t   religion(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   <   R   s    English: Brown Corpus (Religion)c           C   s   t  j d d  S(   NR    t   learned(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   =   R   s   English: Brown Corpus (Learned)c           C   s   t  j d d  S(   NR    t   science_fiction(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   >   s   	s'   English: Brown Corpus (Science Fiction)c           C   s   t  j d d  S(   NR    t   romance(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   A   R   s   English: Brown Corpus (Romance)c           C   s   t  j d d  S(   NR    t   humor(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   B   R   c           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   C   R   s   English: NPS Chat Corpusc           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   D   R   s#   English: Wall Street Journal Corpusc           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   E   R   s   Chinese: Sinica Corpusc           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   F   R   s   Dutch: Alpino Corpusc           C   s   t  j d d  S(   Nt   filess	   hindi.pos(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   G   R   s   Hindi: Indian Languages Corpusc           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   H   R   s&   Portuguese: Floresta Corpus (Portugal)c           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   I   R   s&   Portuguese: MAC-MORPHO Corpus (Brazil)c           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   J   R   s#   Portuguese: Machado Corpus (Brazil)c           C   s
   t  j   S(   N(   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   K   R   s   Spanish: CESS-ESP Corpust   CollocationsViewc           B   s   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 RS(   s   #FFFc         C   s   t  j   |  _ t |  j  |  _ t   |  _ |  j |  j  |  j   |  j	 |  j  |  j
 |  j j  |  j j t |  j  |  _ d  S(   N(   t   qt   QueueR   t   CollocationsModelt   modelR   t   topt	   _init_topt   _init_menubart   _init_widgetst   load_corpust   DEFAULT_CORPUSt   aftert   POLL_INTERVALt   _poll(   t   self(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyt   __init__R   s    
c         C   sT   | j  d  | j d  | j d |  j  | j d |  j  | j d d  d  S(   Ns   550x650+50+50s   NLTK Collocations Lists   <Control-q>t   WM_DELETE_WINDOWi&  i  (   t   geometryt   titlet   bindt   destroyt   protocolt   minsize(   R8   R/   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR0   \   s
    c         C   s   t  | t d |  j d d d d d d   |  _ |  j |  j  |  j |  j  |  j |  j  |  j |  j  |  j j d d d t	  d  S(	   Nt
   backgroundt   padxi   t   padyt   bordert   fillt   botht   expand(
   R   t   dictt   _BACKGROUND_COLOURt
   main_framet   _init_corpus_selectt   _init_results_boxt   _init_pagingt   _init_statust   packt   True(   R8   t   parent(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR2   c   s    -c         C   s  t  | d |  j } t |  |  _ |  j j |  j j  t | d t d d d |  j d d d d d	 d
 j	 d d  t
 |  j j j    j |  j j  } t | |  j |  j j d |  j |  j j   } d
 | d <d | d <| j	 d d  | j	 d d d d d d  d  S(   NRA   t   justifyt   texts	    Corpus: RB   i   RC   i   RD   i    t   sidet   leftt   commandt   borderwidtht   highlightthicknessR/   RE   t   xt   anchort   n(   R   RI   R   t   vart   setR.   R4   R   R   RO   t   listt   CORPORAt   keyst   removeR
   t   corpus_selectedt   non_default_corpora(   R8   RQ   t
   innerframet   other_corporat   om(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyRK   m   s0    	

c         C   sS   t  | d t d t d |  j d d d d d d |  _ |  j j d	 d
 d d  d  S(   NRR   t   reliefRA   RD   i    RB   i   RC   RT   R/   RZ   t   sw(   R   R   R   RI   t   statusRO   (   R8   RQ   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyRN      s    	c         C   s  t  |  j  |  _ t |  j  } t | d d d d } | j d d d d d |  j d	 d
  | j d d d d d |  t | d d } t | d d } | j d d d |  j d d d d d |  j  | j d d d |  j d d d d d |  j  | j d d d |  j d d d d d |  j  | j	 d  | j d d d d d |  | j d d d d d |  |  j j
 d |  d  S(   Nt   tearoffi    RW   t   labelt   Exitt	   underlinei   RV   t   accelerators   Ctrl-qt   Filet   menut   20t   variablet   valuei   t   50i2   t   100id   s   Result Countt   Edit(   R   R/   t   _result_sizeR	   t   add_commandR>   t   add_cascadet   add_radiobuttont   set_result_sizet   invoket   config(   R8   t   menubart   filemenut   editmenut
   rescntmenu(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR1      s<    			
		
		
c         K   s   |  j  j   |  j _ d  S(   N(   Rw   t   getR.   t   result_count(   R8   t   kwargs(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR{      s    c         C   s  t  |  } t  |  } t  |  } t | d d } t | d d d d } t | d t d d d d	  d
 d d d d | j d | j d d d d d d d d 	|  _ |  j j d d d d d t  | j d d d d d d  | j d |  j j	  | j d d d d d t d d  | j d |  j j
  t | d  d! d" |  j j d d d d  | j d d# d d d t d d$  | j d d% d d d d&  | j d d# d d d t  d  S('   NRW   i   t   orientt   horizt   fontt   familyt   couriert   sizet   16t   statet   disabledt   yscrollcommandt   xscrollcommandt   wrapt   nonet   widtht   40t   heightRq   t   exportselectionRT   RU   RE   RF   RG   t   yRZ   t   eRV   RY   t   wRS   s      RA   R/   R[   t   bottomt   s(   R   R   R   R   R]   t   results_boxRO   RP   R}   t   yviewt   xviewR   RI   (   R8   RQ   Rd   t   i1t   i2t
   vscrollbart
   hscrollbar(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyRL      s4    		""c         C   s   t  | d |  j } t | d d d |  j d d d d d	 d d
 d |  _ } | j d d d d  t | d d d |  j d d d d d	 d d
 d |  _ } | j d d d d  | j d d d d  |  j   d  S(   NRA   RS   t   PreviousRV   R   t   10RW   i   RX   R   R   RT   RU   RZ   t   centert   Nextt   rightR/   RE   R   (	   R   RI   R   t   previoust   prevRO   t   __next__t   nextt   reset_current_page(   R8   RQ   Rd   R   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyRM      s*    		c         C   s   d |  _  d  S(   Ni(   t   current_page(   R8   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR      s    c         C   s   y |  j  j d t  } Wn t j k
 r/ n9 X| t k rL |  j |  n | t k rh |  j |  n  |  j	 j
 t |  j  |  _
 d  S(   Nt   block(   R   R   t   FalseR+   t   Emptyt   CORPUS_LOADED_EVENTt   handle_corpus_loadedt   ERROR_LOADING_CORPUS_EVENTt   handle_error_loading_corpusR/   R5   R6   R7   (   R8   t   event(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR7      s    c         C   sF   d |  j  j   |  j d <|  j   |  j   |  j   |  j   d  S(   Ns   Error in loading RS   (   R\   R   Ri   t   unfreeze_editablet   clear_results_boxt   freeze_editableR   (   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR     s
    


c         C   sq   |  j  j   d |  j d <|  j   |  j   |  j   |  j j |  j d  } |  j	 |  |  j d 7_ d  S(   Ns
    is loadedRS   i   (
   R\   R   Ri   R   R   R   R.   R   R   t   write_results(   R8   R   t   collocations(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR     s    


c         G   s    |  j  j   } |  j |  d  S(   N(   R\   R   R3   (   R8   t   argst   new_selection(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyRb     s    c         C   sX   |  j    |  j j |  j d  } |  j d |  _ |  j   |  j |  |  j   d  S(   Ni   (   R   R.   R   R   R   R   R   (   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR     s    

c         C   sW   |  j    |  j j |  j d  } |  j   |  j |  |  j d 7_ |  j   d  S(   Ni   (   R   R.   R   R   R   R   R   (   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   $  s    

c         C   sH   |  j  j | k rD d | d |  j d <|  j   |  j  j |  n  d  S(   Ns   Loading s   ...RS   (   R.   t   selected_corpusRi   R   R3   (   R8   t	   selection(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR3   ,  s    
c         C   s   d |  j  d <d |  j d <d  S(   NR   R   (   R   R   (   R8   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   2  s    c         C   s1   d |  j  d <|  j  j d t  d |  j  d <d  S(   Nt   normalR   s   1.0R   (   R   t   deleteR   (   R8   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   6  s    c         C   s   |  j  j | d d d  S(   Nt   whent   tail(   R/   t   event_generate(   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyt
   fire_event;  s    c         G   s@   |  j  d  k r d  S|  j  j |  j  |  j  j   d  |  _  d  S(   N(   R/   t   Nonet   after_cancelR5   R>   (   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR>   ?  s
    c         O   s$   t    r d  S|  j j | |   d  S(   N(   R   R/   t   mainloop(   R8   R   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   F  s    	c         C   s   |  j    d  S(   N(   t   set_paging_button_states(   R8   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   K  s    c         C   sq   |  j  d k s |  j  d k r. d |  j d <n d |  j d <|  j j |  j   r` d |  j d <n d |  j d <d  S(   Nii    R   R   R   (   R   R   R.   t   is_last_pageR   (   R8   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   N  s    c         C   sp   d |  j  d <d } xI | D]A } |  j  j t |  d | d d | d d  | d 7} q Wd |  j  d <d  S(	   NR   R   i   s   .0i    t    s   
R   (   R   t   insertt   str(   R8   t   resultst   rowt   each(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   X  s    1(   t   __name__t
   __module__RI   R9   R0   R2   RK   RN   R1   R{   RL   RM   R   R7   R   R   Rb   R   R   R3   R   R   R   R>   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR*   O   s4   	
		
			'							
											
R-   c           B   s`   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d e	 j
 f d     YZ RS(	   c         C   sD   d  |  _ d  |  _ d  |  _ t |  _ t |  _ | |  _ |  j	   d  S(   N(
   R   R   R   R   t   _CORPORAR_   t   _DEFAULTR4   R   t   reset_results(   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR9   b  s    						c         C   s   g  |  _  d |  _ d  S(   Ni    (   t   result_pagest   results_returned(   R8   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   k  s    	c         C   s<   | |  _  d  |  _ |  j | |   } | j   |  j   d  S(   N(   R   R   R   t
   LoadCorpust   startR   (   R8   t   namet   runner_thread(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR3   o  s
    		
c         C   s@   g  } | j  t |  j j     | j |  j  | j   | S(   N(   t   extendR^   R_   R`   Ra   R4   t   sort(   R8   t   copy(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyRc   v  s
    
c         C   sG   | t  |  j  k  r t S|  j | t  |  j  |  j t  |  j  k S(   N(   t   lenR   R   R   R   R   (   R8   t   number(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR   }  s
    c         C   s   t  |  j  d | k  r} xa t | t  |  j  d  D]? } |  j j |  j |  j |  j |  j ! |  j |  j 7_ q7 Wn  |  j | S(   Ni   (   R   R   t   ranget   appendR   R   R   (   R8   t   paget   i(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR     s    $	c         C   s   | d k r g  S|  j  | S(   Ni(   R   (   R8   R   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR     s    R   c           B   s   e  Z d    Z d   Z RS(   c         C   s'   t  j j |   | | |  _ |  _ d  S(   N(   t	   threadingt   ThreadR9   R.   R   (   R8   R   R.   (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR9     s    c   
         sX  y&|  j  j |  j   } d d l m } g  | D] } t |  d k r0 | ^ q0   t   f d   t t    d  D  } t    } g  | D]< \ } } | | f | | | f d | | | | f ^ q } | j d | d  d t	  t
 t | d	  |   |  j  _ |  j  j j t  Wn+ t k
 rS}	 |	 GH|  j  j j t  n Xd  S(
   Ni(   t
   itemgetteri   c         3   s&   |  ] } t    | | d  ! Vq d S(   i   N(   t   tuple(   t   .0R   (   RS   (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pys	   <genexpr>  s    i   i   t   keyt   reversei    (   R.   R_   R   t   operatorR   R   R   R   R   RP   R^   t   mapR   R   t   putR   t	   ExceptionR   (
   R8   R   R   R   t   fdt   vocabt   w1t   w2t   scoredR   (    (   RS   s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyt   run  s    +,F!(   R   R   R9   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR     s   	(   R   R   R9   R   R3   Rc   R   R   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyR-   a  s   								c          C   s   t    }  |  j   d  S(   N(   R*   R   (   t   c(    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyt   app  s    	t   __main__R   (0   t
   __future__R    R   t	   six.movesR   R+   t   six.moves.tkinter_fontR   t   six.moves.tkinterR   R   R   R   R   R   R	   R
   R   R   R   R   R   t   nltk.corpusR   R   R   R   R   R   R   R   R   R   R   t	   nltk.utilR   t   nltk.probabilityR   R   R   R6   R   R   R*   R-   R   R   t   __all__(    (    (    s8   lib/python2.7/site-packages/nltk/app/collocations_app.pyt   <module>
   sH   XL















 Q	
