³ò

èAc           @   so  d  d k  l Z d Z d Z d  d k Z d  d k Z d  d k Z d  d k Z d f  d „  ƒ  YZ e	 d j oÿ d e i
 j p d	 e i
 j o d
 GHe i d ƒ n d GHe ƒ  Z d GHd e GHd GHd GHyw xp d Z y e d ƒ Z Wn
 ‚  n Xe i ƒ  Z d e i e ƒ GHe i ƒ  Z d Ge e e e d ƒ ƒ Gd GHqÎ Wn% e j
 o d GHe i d ƒ n Xn d S(   iÿÿÿÿ(   t   nested_scopess   Hugo Liu <hugo@media.mit.edu>s   2.0Nt   MontyREChunkerc           B   s’   e  Z g  Z h  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   JJ |JJR |JJS s   NN |NNS |NNP |NNPS s   VB |VBD |VBG |VBN |VBP |VBZ c         C   s   d  S(   N(    (   t   self(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   __init__   s    c         C   s   |  i  | ƒ S(   N(   t   chunk(   R   t   input_string(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   Process   s    c         C   sŸ   | i  ƒ  } t d „  | ƒ } |  i d i | ƒ ƒ } | i  ƒ  } d } xG t t | ƒ ƒ D]3 } | | d j o | d
 7} | | | | <q[ q[ Wd i | ƒ S(   Nc         S   s   d  i  |  i d  ƒ d d !ƒ S(   t   /i    i   (   t   joint   split(   t   filename_dict(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   <lambda>   s    t    iÿÿÿÿs   (NXs   NX)s   (VXs   VX)s   (AXs   AX)i   (   s   (NXs   NX)s   (VXs   VX)s   (AXs   AX)(   R	   t   filterR   R   t   ranget   len(   R   t   multitaggedt   cksum_cleanedft   the_parser_dictlt   args_cleanedt   dirname1t   mountst   stripped_dict(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   chunk_multitag   s     
c         C   s  |  i  i } |  i | ƒ } | i ƒ  } d } g  } xÃ | D]» } | i d ƒ \ } }	 |	 | j o q: q: t |	 ƒ d j og |	 t d ƒ  d j oP | i |	 ƒ |	 t d ƒ  d }
 | d	 |
 d
 | |	 d ƒ d
 |
 d 7} q: | d
 | d
 7} q: Wd
 i | i ƒ  ƒ } | S(   Nt    R   i   t   NC_t   VC_t   AC_t   Nt   Xs    (R   s   ) (   R   R   R   (   t   lookupt   gett   recognise_allchunksR	   R   t   appendR   (   R   t   taggedt   hostname_cleanedR   R   t   buffert   j_dictt   argst   tagged1t   chmod_cleanedt   the_parser1(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   !   s"     */c         C   sÅ   g  } d d g } d } | i  ƒ  } xš | D]’ } | d j o d | d g } d } q+ | d j o7 d } | d i ƒ  | d <| i | ƒ d d g } q+ | o | d d | | d <q+ q+ W| S(   NR   i    s   (NXs   (VXs   (AXs   (PXi   s   NX)s   VX)s   AX)s   PX)R   (   s   (NXs   (VXs   (AXs   (PX(   s   NX)s   VX)s   AX)s   PX)(   R	   t   stripR!   (   R   t   chunkedt   table_pt   groupsst   id_dictR   t   chroot_p(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   list_chunks6   s$     
c         C   s©   | i  ƒ  } x t t | ƒ ƒ D]y } d | | j ob | | i  d ƒ \ } } | d t d ƒ d j o* | d t d ƒ  } | d | | | <q˜ q q Wd i | ƒ S(   NR   iÿÿÿÿt   _PIVOTR   (   R	   R   R   R   (   R   R+   R   R   R'   t   cds(    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   unprotect_pivot_verbL   s     c            sÅ   | i  ƒ  } d d d g ‰  t d „  | ƒ } t t ‡  f d †  | ƒ ƒ d j o | Sn x[ t t | ƒ ƒ D]G } | | i  d ƒ \ } } | ˆ  j o | d | d | | <Pqm qm Wd	 i | ƒ S(
   Nt   VBDt   VBGt   VBNc         S   s   |  i  d  ƒ d S(   R   i   (   R	   (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   \   s    c            s
   |  ˆ  j S(    (    (   R
   (   t   info_arr(    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   ^   s    i   R   R1   R   (   R	   t   mapR   R   R   R   (   R   R"   R   t   _montylingua_arrR   R'   R2   (    (   R7   sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   protect_pivot_verbY   s    % 	c         C   sO   |  i  | ƒ } |  i | ƒ } |  i | ƒ } |  i | ƒ } |  i | ƒ } | S(   N(   R:   t   recognise_nounchunksR3   t   recognise_verbchunkst   recognise_adjchunks(   R   R"   R   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR    i   s    c            s“  |  i  } | i ƒ  } xA t t | ƒ ƒ D]- } d | | j o d | | | | <q( q( Wt d „  | ƒ } t d „  | ƒ ‰  t d „  | ƒ ‰ d } t i | ƒ } d } x˜| od } d d i ˆ ƒ d } | i | ƒ }	 |	 oYd } t | |	 i	 ƒ   i ƒ  ƒ }
 t | |	 i
 ƒ  i ƒ  ƒ } |
 t ˆ ƒ | f } ˆ  | d | d !‰ ˆ | d | d !‰ d i t ‡ ‡ f d	 †  t t ˆ ƒ ƒ ƒ ƒ } d
 t t i d d ƒ ƒ } d i t d „  | i ƒ  ƒ ƒ } | | | <| Gd G| GHxT t t ˆ  ƒ ƒ D]< } | t | d | d ƒ j o d ˆ  | <| ˆ | <qüqüWq­ q­ Wd i t ‡ ‡  f d †  t t ˆ  ƒ ƒ ƒ ƒ } | i ƒ  } d } g  } xÆ | D]¾ } | i d ƒ \ } } | | j o q”q”t | ƒ d j oj | t d
 ƒ  d j oS | i | ƒ | t d ƒ  d } | d | d | i | d ƒ d | d 7} q”| d | d 7} q”W| i d d ƒ } | i d d ƒ } d i | i ƒ  ƒ } | S(   NR   c         S   s   |  i  d  ƒ S(   R   (   R	   (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   y   s    c         S   s   |  d  S(   i    (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   z   s    c         S   s   |  d  S(   i   (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   {   s    s    (IN )?IN \(NX(.+?) NX\) i   i    R   c            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   t   popd_arrt   mores(    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Œ   s    t   PC_i Êš;c         S   s
   |  d j S(   s   /(NXs   /NX)(   s   /(NXs   /NX)(    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Ž   s    s   <-t   barc            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R9   t   file1(    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   —   s    R   i   t   PR   s    (s   ) s    /(NX s    (NX s    /NX) s    NX) (   R@   (   R   R	   R   R   R8   t   ret   compileR   t   searcht   startt   endt   strt   randomt   randintR   R!   R   t   replace(   R   R+   t   info1R   R   t	   info_dictt   tmp_arrt   awk1t   gawkst   groupnames_strt   info_strt   cleaned_arrt
   tagged_strt   cron_cleanedt   stripped_strt   nice_pR   R$   R%   R&   R'   R(   R)   (    (   RB   R?   R>   R9   sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyt   postchunk_pxq   sf    	 
0!
 
0 *2c            s9  |  i  } t d „  | i ƒ  ƒ } t d „  | ƒ ‰ t d „  | ƒ ‰ d } d } d | d | d } d | d	 | } d
 | } t i | ƒ } d } xj| obd } d
 d
 i ˆ ƒ d
 } | i | ƒ }	 |	 o+d } t | |	 i ƒ   i ƒ  ƒ }
 t | |	 i	 ƒ  i ƒ  ƒ } |
 t ˆ ƒ | f } ˆ | d | d !‰  ˆ | d | d !‰ d
 i t ‡ ‡  f d †  t
 t ˆ  ƒ ƒ ƒ ƒ } d t t i d d ƒ ƒ } | | | <xT t
 t ˆ ƒ ƒ D]< } | t
 | d | d ƒ j o d ˆ | <| ˆ | <q¼q¼Wq› q› Wd
 i t ‡ ‡ f d †  t
 t ˆ ƒ ƒ ƒ ƒ } | S(   Nc         S   s   |  i  d  ƒ S(   R   (   R	   (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   ®   s    c         S   s   |  d  S(   i    (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   ¯   s    c         S   s   |  d  S(   i   (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   °   s    sz   ((PDT )?(DT |PRP[$] |WDT |WP[$] )(VBG |VBD |VBN |JJ |JJR |JJS |, |CC |NN |NNS |NNP |NNPS |CD )*(NN |NNS |NNP |NNPS |CD )+)sR   ((PDT )?(JJ |JJR |JJS |, |CC |NN |NNS |NNP |NNPS |CD )*(NN |NNS |NNP |NNPS |CD )+)t   (t   |s   |EX |PRP |WP |WDT )s   POS )?R   i   i    c            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R>   R?   (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Å   s    R   i Êš;RA   c            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R9   RB   (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Î   s    (   R   R8   R	   RD   RE   R   RF   R   RG   RH   R   RI   RJ   RK   (   R   R"   RM   RN   t
   filename_pt   groupnames1t   case1RP   RQ   RR   RS   RT   RU   RV   RW   R   t   cd_str(    (   R?   RB   R>   R9   sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR;   ¬   s@    	

0
 
0c            s  |  i  } t d „  | i ƒ  ƒ } t d „  | ƒ ‰ t d „  | ƒ ‰ d } t i | ƒ } d } xj| obd } d d i ˆ ƒ d } | i | ƒ } | o+d } t | | i ƒ   i ƒ  ƒ } t | | i	 ƒ  i ƒ  ƒ }	 | t ˆ ƒ |	 f }
 ˆ |
 d |
 d !‰  ˆ |
 d |
 d !‰ d i t ‡ ‡  f d †  t
 t ˆ  ƒ ƒ ƒ ƒ } d	 t t i d d
 ƒ ƒ } | | | <xT t
 t ˆ ƒ ƒ D]< } | t
 |
 d |
 d ƒ j o d ˆ | <| ˆ | <q„q„Wqc qc Wd i t ‡ ‡ f d †  t
 t ˆ ƒ ƒ ƒ ƒ } | S(   Nc         S   s   |  i  d  ƒ S(   R   (   R	   (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Ó   s    c         S   s   |  d  S(   i    (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Ô   s    c         S   s   |  d  S(   i   (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   Õ   s    s£    (RB |RBR |RBS |WRB )*(MD )?(RB |RBR |RBS |WRB )*(VB |VBD |VBG |VBN |VBP |VBZ )(VB |VBD |VBG |VBN |VBP |VBZ |RB |RBR |RBS |WRB )*(RP )?(TO (RB )*(VB |VBN )(RP )?)?i   i    R   c            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R>   R?   (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   æ   s    R   i Êš;t   fooc            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R9   RB   (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   ï   s    (   R   R8   R	   RD   RE   R   RF   R   RG   RH   R   RI   RJ   RK   (   R   R"   RM   RN   t   hostname_strRP   RQ   RR   RS   RT   RU   RV   RW   R   R_   (    (   R?   RB   R>   R9   sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR<   Ñ   s8    	
0
 
0c            s  |  i  } t d „  | i ƒ  ƒ } t d „  | ƒ ‰ t d „  | ƒ ‰ d } t i | ƒ } d } xj| obd } d d i ˆ ƒ d } | i | ƒ } | o+d } t | | i ƒ   i ƒ  ƒ } t | | i	 ƒ  i ƒ  ƒ }	 | t ˆ ƒ |	 f }
 ˆ |
 d |
 d !‰  ˆ |
 d |
 d !‰ d i t ‡ ‡  f d †  t
 t ˆ  ƒ ƒ ƒ ƒ } d	 t t i d d
 ƒ ƒ } | | | <xT t
 t ˆ ƒ ƒ D]< } | t
 |
 d |
 d ƒ j o d ˆ | <| ˆ | <q„q„Wqc qc Wd i t ‡ ‡ f d †  t
 t ˆ ƒ ƒ ƒ ƒ } | S(   Nc         S   s   |  i  d  ƒ S(   R   (   R	   (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   ô   s    c         S   s   |  d  S(   i    (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   õ   s    c         S   s   |  d  S(   i   (    (   R
   (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR   ö   s    s/    (RB |RBR |RBS |JJ |JJR |JJS )*(JJ |JJR |JJS )+i   i    R   c            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R>   R?   (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR     s    R   i Êš;t   barryc            s   ˆ |  d  ˆ  |  S(   R   (    (   R
   (   R9   RB   (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR     s    (   R   R8   R	   RD   RE   R   RF   R   RG   RH   R   RI   RJ   RK   (   R   R"   RM   RN   t   aliasRP   RQ   RR   RS   RT   RU   RV   RW   R   R_   (    (   R?   RB   R>   R9   sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR=   ò   s8    	
0
 
0(   t   __name__t
   __module__t	   used_oidsR   t   adjs_ret   nouns_ret   verbs_reR   R   R   R   R0   R3   R:   R    RY   R;   R<   R=   (    (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pyR      s"   									;	%	!t   __main__s   /?s   -?s4   
        USAGE: >> python MontyREChunker.py
        i    s   
***** INITIALIZING ******s   *************************
s   MontyREChunker vs*   --send bug reports to hugo@media.mit.edu--s   
R   s   > s   -- monty tooki   s   seconds. --
s   
-- monty says goodbye! --(   t
   __future__R    t
   __author__t   __version__RD   RJ   t   syst   timeR   Rd   t   argvt   exitt   mt   sentencet	   raw_inputt   time1R   t   time2RI   t   roundt   KeyboardInterrupt(    (    (    sF   /afs/cs.wisc.edu/p/zhu/06/nlp/montylingua-2.1/python/MontyREChunker.pys   <module>   s:   0ÿ  		'